如何使用BeautifulSoup将标签替换为其内容?

时间:2012-05-11 17:25:23

标签: python beautifulsoup

如何使用BeautifulSoup删除标记?我发现的方法删除了标记和所有其他标记和内容。我想只删除标签,并将其中的所有内容保持不变,例如。

改变这个:

<div>
<p>dvgbkfbnfd</p>
<div>
<span>dsvdfvd</span>
</div>
<p>fvjdfnvjundf</p>
</div>

到此:

<p>dvgbkfbnfd</p>
<span>dsvdfvd</span>
<p>fvjdfnvjundf</p>

1 个答案:

答案 0 :(得分:3)

我已经投票决定以副本结束,但如果它有用,请从右侧的相关答案重新应用slacy's answer为您提供此解决方案:

from BeautifulSoup import BeautifulSoup

html = '''
<div>
<p>dvgbkfbnfd</p>
<div>
<span>dsvdfvd</span>
</div>
<p>fvjdfnvjundf</p>
</div>
'''

soup = BeautifulSoup(html)
for match in soup.findAll('div'):
    match.replaceWithChildren()

print soup

...产生输出:

<p>dvgbkfbnfd</p>

<span>dsvdfvd</span>

<p>fvjdfnvjundf</p>