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

时间:2016-06-19 15:10:23

标签: python image loops selenium src

我正在尝试使用不同的ID打印多个图像网址。 我在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的整数。

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

我是Python的新手,所以我在复杂的语法方面遇到了一些困难。 我一直在尝试使用正则表达式

path =“product-collection-image - ”+。*

但它给我一个语法错误

有没有办法通过selenium抓取所有带有一系列ID的元素并按照它们出现在页面上的顺序打印出来? 另外,在列表中,如何获取属性,如src属性?

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

1 个答案:

答案 0 :(得分:1)

只需使用部分id匹配

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

其中^=表示“以...开头”。

请注意,这样您就可以按照它们在页面上显示的顺序获取图像元素。