python-3.x 使用BeautifulSoup删除div标签,但保留内容

r1zhe5dt  于 2023-02-26  发布在  Python
关注(0)|答案(1)|浏览(217)

使用Python/BeautifulSoup,我只想删除外部的div标记,但保留它的内容。
从这个开始:

<div>
<p>Paragraph 1</p>
<p>Paragraph 2</p>
</div>

会变成这样。

<p>Paragraph 1</p>
<p>Paragraph 2</p>

我觉得这应该很简单,但找不到方法。

px9o7tmv

px9o7tmv1#

可以按如下方式使用unwrap()函数:

from bs4 import BeautifulSoup

html = """
<div>
<p>Paragraph 1</p>
<p>Paragraph 2</p>
</div>"""

soup = BeautifulSoup(html, "html.parser")
soup.div.unwrap()
print(soup)

将显示:

<p>Paragraph 1</p>
<p>Paragraph 2</p>

如果使用lxml,则为:

from bs4 import BeautifulSoup

html = """
<div>
<p>Paragraph 1</p>
<p>Paragraph 2</p>
</div>"""

soup = BeautifulSoup(html, "lxml")
soup.div.unwrap()
print(soup)

为您提供:

<html><body>
<p>Paragraph 1</p>
<p>Paragraph 2</p>
</body></html>

相关问题