使用 selenium 和 python 抓取数据时遇到问题

时间:2021-03-16 06:35:53

标签: python python-3.x selenium

我正在尝试使用 selenium 从网页中抓取一些数据。我已经成功地让 selenium 在树莓派上无头工作,我可以连接到我试图抓取的网页,返回页面的标题并返回我连接到的 URL。

我一直在查看有关如何抓取数据的教程中的示例,它们都是这样的:

titles_element = browser.find_elements_by_xpath(“//a[@class=’text-bold’]”)

然而,我试图抓取的网页中的每条数据都具有相同的类名。我试图抓取的第一位数据的一个例子,我试图获得 4 的胜利值:

Data 1

我尝试抓取的数据的第二个示例,在本例中为 kills,值为 559:

Data 2

我试图抓取的两个数字共享相同的类名,所以我不能简单地按类抓取。 抓取这些数据的最佳方法是什么?

2 个答案:

答案 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 结果:

XPath Tester / Evaluator

答案 1 :(得分:0)

您可以使用 css 属性 = 值选择器通过标题属性定位前面的兄弟,然后使用相邻的兄弟组合器移动到相邻的兄弟并获取所需的值

find_element_by_css_selector('[title=Kills] + .value').text
find_element_by_css_selector('[title=Wins] + .value').text