python - 为什么 xpath 不抓取某些 html(显示为绿色且位于页面末尾的 html)?
问题描述
我是一名初学者,我正在尝试在 hockey-reference.com 上收集球员的曲棍球统计数据。我从中抓取的播放器页面的一个示例是https://www.hockey-reference.com/players/a/abdelju01.html。
此页面的最底部是显示为全绿色的 html,xpath 不会抓取任何内容。
具体来说,我需要包含在第四个 tbody 标记中的文本,因为我想抓取 Corsi 和 Fenwick 的分数。但是,该 tbody 标记 html 为绿色,并且此 xpath 代码:
list = player.xpath("//tbody[3]//tr//text()")
返回一个空列表。
此代码:player.xpath("//tbody[1]//tr//text()")
从第二个 tbody 标记准确返回我需要的内容,该标记是以正常颜色编码方式显示的 html。
这个绿色的 html 是怎么回事?它是否以某种方式被阻止?有什么办法可以刮吗?
解决方案
我有一个例子给你,如何通过 xpath 查找值。这些是给 Corsi 的:
'//tr[1][not(@class="bold")]/td[@data-stat="corsi_for"]'
'//tr[1][not(@class="bold")]/td[@data-stat="corsi_against"]'
'//tr[1][not(@class="bold")]/td[@data-stat="corsi_pct"]'
'//tr[1][not(@class="bold")]/td[@data-stat="corsi_rel_pct"]'
您可以将行从第一行更改为//tr[1]
第二行,只需更改://tr[2]
希望对你有帮助。
推荐阅读
- sql - Oracle:真正的价值在 WHERE
- javascript - 如何将函数传播到 div 元素中?
- android - android:sharedUserId="android.uid.system" 从 SDCard 获取文件
- watson-iot - 可以管理设备,但仪表板中不再提供操作
- javascript - 页面加载时立即触发 IntersectionObserver 回调
- python-3.x - return value (Python best practices)
- salt-stack - 无法在 Salt 上应用状态文件
- postgresql - 以秒为单位截断所有查询的日期时间,但将毫秒存储在 Postgres 中
- bisection - 在R中找到根的二分法
- javascript - 在动态生成的按钮上添加多个操作