在BeautifulSoup分解后删除变空的行

时间:2017-02-16 23:36:21

标签: python beautifulsoup

我正在尝试从BeautifulSoup的文件中删除某些HTML标记及其内容。如何在应用decompose()后删除变空的行?在此示例中,我希望a3之间的行消失,因为这是<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

2 个答案:

答案 0 :(得分:0)

要删除空行,最简单的方法是通过重新

MyBase

答案 1 :(得分:0)

我很惊讶BeatifulSoup没有提供prettify()选项。除了手动操作html之外,您还可以重新解析html:

str(BeautifulSoup(str(soup), 'html.parser'))

一如既往地享受。