使用python处理HTML标记
在HTML文件中,出现了以下情况:使用python处理HTML标记,python,html,Python,Html,在HTML文件中,出现了以下情况: <span class="finereader"></span> 或 a 我想删除所有这些标签。第二个示例显示,标签下可能有一个字母(或数字,但只有1)。不应删除该字母,只能删除和以下。 是否有任何re.sub表达式可以做到这一点? 感谢您的帮助。您可能希望查看而不是使用正则表达式来完成此任务 然后您可以这样做:(在本例中使用字符串作为html文件) 从bs4导入美化组 html_doc=“” 样品 A. B """ 汤=美汤(
<span class="finereader"></span>
或
a
我想删除所有这些标签。第二个示例显示,标签下可能有一个字母(或数字,但只有1)。不应删除该字母,只能删除
和以下
。
是否有任何re.sub表达式可以做到这一点?
感谢您的帮助。您可能希望查看而不是使用正则表达式来完成此任务
然后您可以这样做:(在本例中使用字符串作为html文件)
从bs4导入美化组
html_doc=“”
样品
A.
B
"""
汤=美汤(html\U文档)
对于汤中的span。查找所有('span'):
打印(span.string)
#输出:
#a
#b
对于此任务,您可能希望查看而不是使用正则表达式
然后您可以这样做:(在本例中使用字符串作为html文件)
从bs4导入美化组
html_doc=“”
样品
A.
B
"""
汤=美汤(html\U文档)
对于汤中的span。查找所有('span'):
打印(span.string)
#输出:
#a
#b
另一种解决方案使用:
另一个解决方案使用:
难道不能使用字符串或lxml吗?因为我使用lxml…如果我理解正确,BS只是lxml的替代品,不是吗?@MarkF6:
BeautifulSoup
可以使用多个解析器,其中一个是lxml
。看一看,非常感谢。这起作用了。但我还有最后一个问题:BS产生的布局(带有所有的移位)对我没有帮助;事实上,我根本不想换班。使用BS是否有可能实现这一点?@MarkF6:使用print(soup)
而不是print(soup.prettify())
。使用字符串或lxml难道不可能吗?因为我使用lxml…如果我理解正确,BS只是lxml的替代品,不是吗?@MarkF6:BeautifulSoup
可以使用多个解析器,其中一个是lxml
。看一看,非常感谢。这起作用了。但我还有最后一个问题:BS产生的布局(带有所有的移位)对我没有帮助;事实上,我根本不想换班。使用BS是否有可能实现这一点?@MarkF6:使用print(soup)
而不是print(soup.prettify())
。
<span class="finereader">a</span>
from bs4 import BeautifulSoup
html_doc = """
<html>
<head>
<title>Sample</title>
</head>
<body>
<span class="dummy">a</span>
<span>b</span>
</body>
</html>
"""
soup = BeautifulSoup(html_doc)
for span in soup.find_all('span'):
print(span.string)
# output:
# a
# b
from bs4 import BeautifulSoup
soup = BeautifulSoup(open('htmlfile'))
for elem in soup.find_all('span', class_='finereader'):
elem.replace_with(elem.string or '')
print(soup.prettify())