Python 如何使用Beauty Soup删除html注释

Python 如何使用Beauty Soup删除html注释,python,beautifulsoup,Python,Beautifulsoup,我正在清理爬网网站上的文本,但我不想在我的数据中包含任何html注释,所以我必须自己解析它,还是有一个现有的函数可以这样做 我试过这样做: 从bs4导入美化组作为S soup=S(“Hejsa html{color:#0000ff}”) soup.comment#==无 soup.style#==html{color:#0000ff} 要搜索表单HTML注释,可以使用bs4.Comment键入: from bs4 import BeautifulSoup, Comment html_doc =

我正在清理爬网网站上的文本,但我不想在我的数据中包含任何html注释,所以我必须自己解析它,还是有一个现有的函数可以这样做

我试过这样做:

从bs4导入美化组作为S
soup=S(“Hejsa html{color:#0000ff}”)
soup.comment#==无
soup.style#==html{color:#0000ff}

要搜索表单HTML注释,可以使用
bs4.Comment
键入:

from bs4 import BeautifulSoup, Comment

html_doc = '''
    <!-- t --> <h1>Hejsa</h1> <style>html{color: #0000ff}</style>
'''

soup = BeautifulSoup(html_doc, 'html.parser')

# print comment:
comment = soup.find(text=lambda t: isinstance(t, Comment))
print( comment )

要提取它,请执行以下操作:

comment = soup.find(text=lambda t: isinstance(t, Comment))

# extract comment:
comment.extract()
print(soup.prettify())
印刷品:

t
<h1>
 Hejsa
</h1>
<style>
 html{color: #0000ff}
</style>

赫扎
html{color:#0000ff}
使用正则表达式

import re
html = "<!-- t --> <h1>Hejsa</h1> <style>html{color: #0000ff}</style>"
html = re.sub('<!--[\s\S]*-->', '', html).strip()
print(html)
重新导入
html=“Hejsa html{color:#0000ff}”
html=re.sub(“”,,,html).strip()
打印(html)
结果:

<h1>Hejsa</h1> <style>html{color: #0000ff}</style>
Hejsa html{color:#0000ff}