【问题标题】:How to get attribute using Selenium python without using .get_attribute()如何在不使用 .get_attribute() 的情况下使用 Selenium python 获取属性
【发布时间】:2018-01-30 01:16:55
【问题描述】:

这是我发布的第一个问题,如果我应该让问题更清楚,请告诉我。此外,我刚刚开始使用 Python,所以我希望我能用正确的术语来表达这个问题。

基本上,我创建了一个可定制的网络爬虫,它依赖于用户对 CSS 选择器的了解。用户首先必须访问他们想要抓取并记下所需元素的 css 选择器(“AA”)的网站,然后将其输入到 Excel 文件中,python 脚本将在其中读取输入并将其传递给browser.find_elements_by_css_selector("AA") 并通过 .text.encode('utf-8') 获取相关文本

但是我注意到有时属性值中可能有一些重要的信息应该被抓取。我环顾四周,发现建议总是包含 .get_attribute()

1) 是否可以通过仅使用 browser.find_elements_by_css_selector("AA") 而不使用 browser.find_elements_by_css_selector("AA").get_attribute("BB") 来获取属性值。否则,

2) 用户是否可以在 browser.find_elements_by_css_selector("AA").get_attribute("BB") 中的 "BB" 中输入一些值,这样只有 browser.find_elements_by_css_selector("AA") 会运行?

【问题讨论】:

  • 不确定“只有 browser.find_elements_by_css_selector("AA") 会运行”是什么意思?但您可以使用 xpath 进行选择。
  • “AA”和“BB”是用户输入。我试图询问是否有一些用户输入值“BB”可以将代码简化为 browser.find_elements_by_css_selector("AA")。例如。 url = store.steampowered.com/search/?filter=topsellers "AA" = span.title, "BB" = someinputvalue 。由于未找到某个输入值,代码仍将作为 browser.find_elements_by_css_selector("span.title") 运行。
  • 听起来你只需要使用 try: ... except:

标签: python html css selenium


【解决方案1】:

是的,有一种替代方法可以在不使用get_attribute() 方法的情况下检索text 属性值。我不确定这是否可以通过 css 实现,但通过 xpath 是可能的。几个例子如下:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-15
    • 1970-01-01
    • 1970-01-01
    • 2020-04-12
    • 2018-05-07
    • 1970-01-01
    • 2021-05-07
    • 1970-01-01
    相关资源
    最近更新 更多