首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用selenium和python抓取数据时遇到问题

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

Stack Overflow用户
提问于 2021-03-16 14:35:54
回答 2查看 55关注 0票数 0

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

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

代码语言:javascript
运行
复制
titles_element = browser.find_elements_by_xpath(“//a[@class=’text-bold’]”)

然而,我试图抓取的网页中的每一块数据都有相同的类名。举一个我试图抓取的第一位数据的例子,我试图得到wins的值是4:

Data 1

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

Data 2

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

EN

回答 2

Stack Overflow用户

发布于 2021-03-16 15:06:23

titles_element = browser.find_elements_by_xpath(...)

我认为您可以对数据1(在括号中)执行类似的操作

代码语言:javascript
运行
复制
/div/span[@title="Wins"]/following-sibling::span[@class="value"]/text()

对于数据2也是类似的:

代码语言:javascript
运行
复制
/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

票数 0
EN

Stack Overflow用户

发布于 2021-03-16 15:16:13

您可以使用css attribute = value选择器通过title属性将前面的同级作为目标,然后使用相邻同级组合器移动到相邻同级并获取所需的值

代码语言:javascript
运行
复制
find_element_by_css_selector('[title=Kills] + .value').text
find_element_by_css_selector('[title=Wins] + .value').text
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66650135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档