使用Beautiful Soup去除HTML时保留空格
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))