【发布时间】:2021-01-30 00:58:13
【问题描述】:
我知道有关此站点的已注释 HTML 表格的其他一些问题,但我不相信他们回答了这个特定问题。
我正在尝试为其中的所有表格刮取this page。除了“射击”之外,我可以得到所有。
我知道除了“Per Game”之外的所有内容都在页面源代码中被注释掉了。为了处理注释掉的表,我使用的代码如下:
soup = BeautifulSoup(res.text, "lxml")
comment_table = soup.find(text=lambda x: isinstance(x, NavigableString) and stat in x)
soup = BeautifulSoup(comment_table, "lxml")
table = soup.find("table", id=stat)
stat 可以是任意数量的“统计信息”。有效的是“per_minute”、“pbp”、“adj_shooting”等。
它首先找到被注释掉的表,然后从那里开始正常解析表。对于所有注释表,table 是一个表标签。然而,当stat 是“射击”时,table 是空的。
在查找包含“射击”的实例时,comment_table 行将返回文本 'Player shooting history' 而不是预期的表格。我已经验证了注释掉的文本中有“射击”(在页面源中)。
谁能帮我弄清楚这张桌子有什么不同?
【问题讨论】:
-
你检查过不是js创建的内容吗?几个月前我抓取了这个页面并遇到了一些类似的问题。
-
我无法想象这会是一张桌子,但我该如何检查呢?它在页面源代码中。
标签: python html python-3.x web-scraping beautifulsoup