微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何用美丽汤找到所有评论

如何解决如何用美丽汤找到所有评论

您可以将函数传递给find_all()来帮助它检查字符串是否为Comment。

例如我有下面的HTML:

<body>
   <!-- branding and main navigation -->
   <div class="branding">The Science &amp; Safety Behind Your Favorite Products</div>
   <div class="l-branding">
      <p>Just a brand</p>
   </div>
   <!-- test comment here -->
   <div class="block_content">
      <a href="https://www.google.com">Google</a>
   </div>
</body>

码:

from bs4 import BeautifulSoup as BS
from bs4 import Comment
....
soup = BS(html, 'html.parser')
comments = soup.find_all(string=lambda text: isinstance(text, Comment))
for c in comments:
    print(c)
    print("===========")
    c.extract()

输出将是:

branding and main navigation 
============
test comment here
============

顺便说一句,我认为find_all('Comment')不起作用的原因是(来自BeautifulSoup文档):

输入名称的值,您将告诉Beautiful Soup仅考虑具有特定名称标签。 以及名称不匹配的标记

解决方法

我想使用漂亮的汤删除html文件中的所有注释。由于BS4将每个注释作为一种特殊类型的可导航字符串,所以我认为这段代码可以工作:

for comments in soup.find_all('comment'):
     comments.decompose()

所以那行不通…。如何使用BS4查找所有评论?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。