使用Beautiful Soup剥离HTML时保留空间

sea*_*ieb 7 html python beautifulsoup

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))
Run Code Online (Sandbox Code Playgroud)

这段代码的输出是"Para 1 WordsMerge.Para 2Quote 1Quote 2".

我不希望第一段的最后一句与第二段的第一个词合并.例如."Para 1 Words Merge.Para 2引用1引用2".可以使用BeautifulSoup库实现吗?

Fel*_*lix 10

如果你在版本4.x 中使用get_text():

from bs4 import BeautifulSoup
...
...
soup.get_text(" ")
Run Code Online (Sandbox Code Playgroud)


Ned*_*der 9

只需加入空间:

print u' '.join(soup.findAll(text=True))
Run Code Online (Sandbox Code Playgroud)