我正在使用 BeautifulSoup 练习一些网页抓取,特别是我正在查看 NFL 比赛数据,更具体地说是本页上的“球队统计”表(https://www.pro-football-reference.com/boxscores/201809060phi.htm).
当查看表格的 HTML 时,我看到如下内容:
<div class="section_heading">...</div>
<div class="placeholder"></div>
<!--
<div class="table_outer_container">
<div class="overthrow table_container" id="div_team_stats">
<table class="stats_table" id="team_stats" data-cols-to-freeze=1>
....
</table>
</div>
</div>
-->
本质上,渲染到页面的 HTML 作为注释存储在 HTML 中,因此我可以找到表的 div,但 BeautifulSoup 无法解析表本身,因为它都在注释中。
有没有一个好的方法来解决这个问题,以便我可以使用 BeautifulSoup 解析表 HTML?我想出了如何提取注释文本,但我不知道是否有好的方法将生成的字符串转换为可用的 HTML。或者,可以简单地删除注释标签,我认为这会使其被解析为 HTML,但我也没有找到一个好的方法来做到这一点。
from bs4 import BeautifulSoup, Comment
for comments in soup.findAll(text=lambda text:isinstance(text, Comment)):
comments.extract()
由此,您将能够取出所有评论并获取评论之间的文本并将其放入 BS4 中以提取其中的数据。希望这有效。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)