首页 > 解决方案 > 为什么 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 是怎么回事?它是否以某种方式被阻止?有什么办法可以刮吗?

标签: pythonhtmlxpathweb-scraping

解决方案


我有一个例子给你,如何通过 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]

希望对你有帮助。


推荐阅读