我正在尝试使用 selenium 从网页中抓取一些数据。我已经成功地让 selenium 在树莓派上无头工作,我可以连接到我试图抓取的网页,返回页面的标题并返回我连接到的 URL。
我一直在查看有关如何抓取数据的教程中的示例,它们都是这样的:
titles_element = browser.find_elements_by_xpath(“//a[@class=’text-bold’]”)
然而,我试图抓取的网页中的每条数据都具有相同的类名。我试图抓取的第一位数据的一个例子,我试图获得 4 的胜利值:
我尝试抓取的数据的第二个示例,在本例中为 kills,值为 559:
我试图抓取的两个数字共享相同的类名,所以我不能简单地按类抓取。 抓取这些数据的最佳方法是什么?
答案 0 :(得分:0)
titles_element = browser.find_elements_by_xpath(...)
我认为您可以对数据 1(括号内)执行这样的操作
/div/span[@title="Wins"]/following-sibling::span[@class="value"]/text()
对于数据 2 也类似:
/div/span[@title="Kills"]/following-sibling::span[@class="value"]/text()
我使用以下内容作为参考:
XPath: how to select elements that are related to other on the same level
并测试您的代码以查看 XPath 结果:
答案 1 :(得分:0)
您可以使用 css 属性 = 值选择器通过标题属性定位前面的兄弟,然后使用相邻的兄弟组合器移动到相邻的兄弟并获取所需的值
find_element_by_css_selector('[title=Kills] + .value').text
find_element_by_css_selector('[title=Wins] + .value').text