python - 删除评论标签,但不包含 BeautifulSoup 的内容
问题描述
我正在使用 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 以提取其中的数据。希望这有效。
推荐阅读
- c# - 从 TextBox 访问值
- c# - C# 整数?参数-数据为空。不能对 Null 值调用此方法或属性
- google-chrome - 浏览器会根据哪些标准考虑使用“application/x-www-form-urlencoded”作为内容类型?
- javascript - Ajax 更新 textarea 没有按钮或页面刷新
- javascript - 根据单词的数量生成计时器倒计时
- c# - 如何传递原始值而不是替换号( * )
- python - 不理解单链表实现的“超出递归深度”错误
- xamarin - 编译器找不到样式
- sql - 用于选择行的 Where 语句层次结构
- javascript - 更正脚本以仅发送 Google 表格中的最后一行数据