我正在尝试从BeautifulSoup
的文件中删除某些HTML标记及其内容。如何在应用decompose()
后删除变空的行?在此示例中,我希望a
和3
之间的行消失,因为这是<span>...</span>
块的位置,而不是最后的行。
from bs4 import BeautifulSoup
Rmd_data = 'a\n<span class="answer">\n2\n</span>\n3\n'
print(Rmd_data)
#OUTPUT
# a
# <span class="answer">
# 2
# </span>
# 3
#
# END OUTPUT
soup = BeautifulSoup(Rmd_data, "html.parser")
answers = soup.find_all("span", "answer")
for a in answers:
a.decompose()
Rmd_data = str(soup)
print(Rmd_data)
# OUTPUT
# a
#
# 3
#
# END OUTPUT
答案 0 :(得分:0)
要删除空行,最简单的方法是通过重新
MyBase
答案 1 :(得分:0)
我很惊讶BeatifulSoup没有提供prettify()选项。除了手动操作html之外,您还可以重新解析html:
str(BeautifulSoup(str(soup), 'html.parser'))
一如既往地享受。