Экономьте место при удалении HTML с помощью Beautiful Soup

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))

Результатом этого кода будет "Para 1 WordsMerge. Para 2Quote 1Quote 2".

Я не хочу, чтобы последнее слово первого абзаца слилось с первым словом второго абзаца. например. «Слияние слов в параграфе 1. Цитата в параграфе 1 и цитата 2» . Можно ли этого добиться с помощью библиотеки BeautifulSoup?


person seanieb    schedule 16.08.2011    source источник


Ответы (2)


Просто соедините части пробелом:

print u' '.join(soup.findAll(text=True))
person Ned Batchelder    schedule 16.08.2011

И если вы используете get_text() в версии 4. Икс:

from bs4 import BeautifulSoup
...
...
soup.get_text(" ")
person Felix    schedule 26.07.2016