我正在尝试使用selenium从网页中抓取一些数据。我已经成功地让selenium在树莓派上无头工作,我可以连接到我试图抓取的网页,返回页面的标题,并返回我连接到的URL。
我一直在看教程中关于如何抓取数据的示例,它们都是这样的:
titles_element = browser.find_elements_by_xpath(“//a[@class=’text-bold’]”)然而,我试图抓取的网页中的每一块数据都有相同的类名。举一个我试图抓取的第一位数据的例子,我试图得到wins的值是4:
第二个示例是im尝试抓取的数据,在本例中为kill,值为559:
我试图抓取的两个数字共享相同的类名,所以我不能简单地按类抓取。抓取这些数据的最佳方式是什么?
发布于 2021-03-16 15:06:23
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结果:
发布于 2021-03-16 15:16:13
您可以使用css attribute = value选择器通过title属性将前面的同级作为目标,然后使用相邻同级组合器移动到相邻同级并获取所需的值
find_element_by_css_selector('[title=Kills] + .value').text
find_element_by_css_selector('[title=Wins] + .value').texthttps://stackoverflow.com/questions/66650135
复制相似问题