使用Beautiful Soup去除HTML时保留空格

8 投票
2 回答
3559 浏览
提问于 2025-04-16 23:39
from BeautifulSoup import BeautifulSoup

html = "<html><p>Para 1. Words</p><p>Merge. Para 2<blockquote>Quote 1<blockquote>Quote 2</p></html>"
print html
soup = BeautifulSoup(html)
print u''.join(soup.findAll(text=True))

这段代码的输出是“段落1 单词合并。段落2 引用1 引用2”。

我不想让段落1的最后一个词和段落2的第一个词合在一起。比如说,我想要“段落1 单词 合并。段落2 引用1 引用2”。

请问可以用BeautifulSoup这个库来实现吗?

2 个回答

18

如果你在使用版本4.x的get_text()方法:

from bs4 import BeautifulSoup
...
...
soup.get_text(" ")
11

只需要用空格把这些部分连接起来就可以了:

print u' '.join(soup.findAll(text=True))

撰写回答