我有一个像这样的HTML:
<hmtl>
<body>
<h1>heading 1</h1>
<p>blah</p>
<h2>heading 2</h2>
<p>blah</p>
<h2>heading 3</h2>
<p>blah</p>
</body>
</html>
我希望能够返回美化文本,而不是HTML。
我认为唯一的方法是找到并用标题替换每个标题,再添加换行符。
有更好的方法吗?
答案 0 :(得分:0)
如果您需要,可以在每个标题后插入<br/>
标记,以增加标题和内容之间的空间:
import re
for header in soup.find_all(name=re.compile(r'^h\d')):
br=soup.new_tag('br')
header.insert_after(br)
插入之前:
from bs4 import BeautifulSoup
soup = BeautifulSoup("""<hmtl>
<body>
<h1>heading 1</h1>
<p>blah</p>
<h2>heading 2</h2>
<p>blah</p>
<h2>heading 3</h2>
<p>blah</p>
</body>
</html>""", "html.parser")
from IPython.display import display, HTML
chart = HTML(str(soup))
display(chart)
插入<br/>
代码:
for header in soup.find_all(name=re.compile(r'^h\d')):
br=soup.new_tag('br')
header.insert_after(br)
chart = HTML(str(soup))
display(chart)