【发布时间】: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: