我可以使用 BeautifulSoup 删除脚本标签吗?

新手上路,请多包涵

可以使用 BeautifulSoup 从 HTML 中删除 <script> 标签及其所有内容,还是我必须使用正则表达式或其他东西?

原文由 Sam 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 637
2 个回答
from bs4 import BeautifulSoup
soup = BeautifulSoup('<script>a</script>baba<script>b</script>', 'html.parser')
for s in soup.select('script'):
    s.extract()
print(soup)
baba

原文由 Fábio Diniz 发布,翻译遵循 CC BY-SA 4.0 许可协议

为将来可能需要参考的人更新的答案:正确答案是。 decompose() 。您可以使用不同的方式,但 decompose 可以正常工作。

用法示例:

 soup = BeautifulSoup('<p>This is a slimy text and <i> I am slimer</i></p>')
soup.i.decompose()
print str(soup)
#prints '<p>This is a slimy text and</p>'

对于摆脱像 <script><img> 等碎屑非常有用。

原文由 Abhishek Dujari 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题