【问题标题】:printing multiple images url's with different id's打印具有不同 id 的多个图像 url
【发布时间】:2016-10-20 21:25:57
【问题描述】:

我正在尝试打印具有不同 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 的整数。

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

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

中使用正则表达式

path="product-collection-image-"+.*

但它给了我一个语法错误

有没有办法使用 selenium 获取具有一系列 id 的所有元素并按照它们出现在页面上的顺序打印它? 另外,在列表中,如何获取属性,例如 src 属性?

抱歉,我要开始学习曲线了!

【问题讨论】:

    标签: python image loops selenium src


    【解决方案1】:

    只需使用 部分id 匹配

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

    ^= 表示“以”开头。

    请注意,这样您将按照它们在页面上出现的顺序获取图像元素。

    【讨论】:

    • @NelsonGomes 当然,如果您想一张一张打印它们。我使用列表推导将 src 值收集到列表中。
    • 我是这样做的:for img in driver.find_elements_by_css_selector('[id^="product-collection-image-"]'): imgurl= img.get_attribute("src") print imgurl
    • 我真的很想逐行打印。我需要获取这些数据并将其放入 Excel 行。我还需要开始在 Python 中学习 Excel 模块,以便创建文件、将数据转储到 A 列、将其他数据转储到 B 列等。现在,我正在手动执行此操作。非常感谢亚历克斯!!!我必须补偿你!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 2021-02-14
    • 1970-01-01
    • 2014-03-21
    • 1970-01-01
    相关资源
    最近更新 更多