打印多个具有不同 ID 的图像 url

printing multiple images url's with different id's

我正在尝试打印具有不同 ID 的多张图像 url。 我在 python 中使用 selenium,我一直在尝试这段代码:

    for i in range (5000):
            path= "product-collection-image-"+str(i)
            try:
                    image = driver.find_element_by_id(path)
                    img_src = image.get_attribute("src")
                    print img_src
            except:
                    pass

我要打印的所有图像都有一个名为 "product-collection image-" 的 ID,然后是一些从 1 到 5000 的整数。

使用此代码,我可以打印图像 urls,但它们按数字顺序排列。我希望它按照它们在页面中出现的顺序排列,因为我想将它与其他字段匹配。

我是 Python 的新手,所以我对复杂的语法有一些困难。 我一直在尝试在

中使用正则表达式

路径="product-collection-image-"+.*

但它给我一个语法错误

有没有一种方法可以使用 selenium 获取具有一定范围 ID 的所有元素并按照它们出现在页面上的顺序打印出来? 另外,在列表中,如何获取属性,例如 src 属性?

抱歉,我正在开始学习曲线!

只需使用部分id匹配:

image_srcs = [img.get_attribute("src") 
              for img in driver.find_elements_by_css_selector('[id^="product-collection-image-"]')]

其中 ^= 表示 "starts with"。

请注意,通过这种方式,您将按照图像元素在页面上出现的顺序获取图像元素。