Py学习  »  Python

selenium python只获得第一个图像链接

ByHala • 3 年前 • 1433 次点击  

product 一共有五张图片。我试图获得这五个图像链接,但只获得第一个图像链接。这是我的代码:

images = driver.find_elements_by_css_selector('#shopify-section-product-template .Image--lazyLoaded')

for image in images:
    image = image.get_attribute('data-original-src') 

#原始数据src包含每个图像的链接

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/130753
 
1433 次点击  
文章 [ 3 ]  |  最新文章 3 年前
Barno Chakraborty
Reply   •   1 楼
Barno Chakraborty    4 年前

因为他们的课程不同,所以你们的学生都能拿到。 您将获得第一张图片:

images = driver.find_elements_by_css_selector('#shopify-section-product-template .Image--lazyLoaded')

但要获得其他四个用途:。图像——法登类

user15558540
Reply   •   2 楼
user15558540    4 年前

这里最可能发生的情况是,图像没有被渲染。要解决这个问题,只需添加一个代码片段,在调用“find_element”函数之前滚动到页面底部。

driver.execute_script("window.scrollTo(0, 990000)") 
Prophet
Reply   •   3 楼
Prophet    4 年前

该页面最初仅加载1个图像。
要获得更多图像,必须滚动页面。
因此,无需滚动页面,即可使用

images = driver.find_elements_by_css_selector('#shopify-section-product-template .Image--lazyLoaded')

中只有一个元素 images 列表
UPD
您可以单击左侧的dot导航,然后获得图像:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

wait = WebDriverWait(driver, 20)

wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, ".Product__SlideshowNavScroller")))
time.sleep(0.2)
dots = driver.find_elements_by_css_selector('.Product__SlideshowNavScroller a')
image_src = set()
for dot in dots:
    dot.click()
    time.sleep(1)
    images = driver.find_elements_by_css_selector('#shopify-section-product-template .Image--lazyLoaded')
    for image in images:
        image_src.add(image.get_attribute('data-original-src'))

image_src 最终将包含所有图片src链接