我正在嘗試從“https://www.akrapovic.com/en/car/product/16722/Ferrari/488-GTB-488-Spider/Slip-On-Line-Titanium?brandId= 20&modelId=785&yearId=5447"。不幸的是,我的代碼只能得到那些微小的影像。
collected_HTML_Tag = driver.find_element(By.XPATH,"//nav/ul/li[1]/a/img").get_attribute('src')
print(collected_HTML_Tag)
如何改進我的代碼以獲得上述影像?
為了更好地理解示例,請考慮以下影像。我需要用紅色標記的影像。
和 
uj5u.com熱心網友回復:
您可以使用以下代碼下載所有 4 張圖片:
from selenium import webdriver
import time
# Function of downloading Image in current folder
def downloadImage(driver, j):
with open(f'Image{j}.jpg', 'wb') as file:
l = driver.find_element_by_xpath(
'/html/body/ak-app/div[1]/abstract/products/section/product-details/section[1]/div[2]/div/div[2]/div[2]/div/img')
file.write(l.screenshot_as_png)
driver = webdriver.Chrome()
driver.implicitly_wait(5)
driver.maximize_window()
driver.get('https://www.akrapovic.com/en/car/product/16722/Ferrari/488-GTB-488-Spider/Slip-On-Line-Titanium?brandId=20&modelId=785&yearId=5447')
# Click Next Image
for j in range(1, 5):
print(j)
if j != 1:
driver.find_element_by_xpath(
f'/html/body/ak-app/div[1]/abstract/products/section/product-details/section[1]/div[2]/div/div[2]/div[2]/nav/ul/li[{j}]/a/img').click()
time.sleep(5)
downloadImage(driver, j)
uj5u.com熱心網友回復:
您不需要使用 Selenium,只需使用請求即可在不到一秒的時間內獲取這些 image_url,還有一個后端 api 請求,您可以從給定的 url 重新創建:
import requests
given_url = 'https://www.akrapovic.com/en/car/product/16722/Ferrari/488-GTB-488-Spider/Slip-On-Line-Titanium?brandId=20&modelId=785&yearId=5447'
code = given_url.split('/')[6] #get car code
suffix = given_url.split('?')[-1] #get endpart of url
headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36'}
url = f'https://www.akrapovic.com/api2/en-US/products/car/{code}?$inlinecount=allpages&{suffix}'
resp = requests.get(url,headers=headers).json()
images = [x['Image'] for x in resp['ProductImages']]
print(images)
該 api url 可以在瀏覽器的開發者工具 - 網路選項卡 - fetch/Xhr 中找到(然后重繪 頁面,你會看到它加載)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/421983.html
標籤:
上一篇:在單擊xpath之前,如何重繪PythonSelenium?
下一篇:硒/蟒蛇網路
