原始文本
三个p标签都没有闭合
<div>
<p>a
<p>b
<p>c
</div>
使用html.parser解析器
from bs4 import BeautifulSoup
html = """
<div>
<p>a
<p>b
<p>c
</div>
"""
soup = BeautifulSoup(html, "html.parser")
print(soup.prettify())
结果完全不对
<div>
<p>
a
<p>
b
<p>
c
</p>
</p>
</p>
</div>
使用lxml解析器
from bs4 import BeautifulSoup
html = """
<div>
<p>a
<p>b
<p>c
</div>
"""
soup = BeautifulSoup(html, "lxml")
print(soup.prettify())
结果比较完美:
<html>
<body>
<div>
<p>
a
</p>
<p>
b
</p>
<p>
c
</p>
</div>
</body>
</html>