我正在尝试使用不同的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属性?
很抱歉,我正在开始学习曲线!
答案 0 :(得分:1)
只需使用部分id
匹配:
image_srcs = [img.get_attribute("src")
for img in driver.find_elements_by_css_selector('[id^="product-collection-image-"]')]
其中^=
表示“以...开头”。
请注意,这样您就可以按照它们在页面上显示的顺序获取图像元素。