Встроенный анализ в BeautifulSoup в Python - PullRequest
0 голосов
/ 23 января 2010

Я пишу HTML-документ с BeautifulSoup и хотел бы, чтобы он не разбивал встроенный текст (например, текст внутри тега <p>) на несколько строк. Проблема, которую я получаю, заключается в том, что синтаксический анализ <p>a<span>b</span>c</p> с prettify дает мне вывод

<p>
  a
<span>
b
</span>
c
</p>

и теперь HTML отображает пробелы между a, b, c, что мне не нужно. Как мне избежать этого?

Ответы [ 2 ]

2 голосов
/ 23 января 2010

Как насчет того, чтобы вообще не использовать prettify?

BeautifulSoup.BeautifulSoup('<p>a<span>b</span>c</p>').renderContents()

выводит оригинальный HTML без лишних пробеловНапример, вы можете использовать, например, Firebug, чтобы более подробно рассмотреть структуру документа, и вам не нужно будет «предварительно проверять» его во время создания.

0 голосов
/ 23 января 2010

Я бы просто сделал:

from BeautifulSoup import BeautifulSoup

ht = '<p>a<span>b</span>c</p>'
soup = BeautifulSoup(ht)
print soup

и избегайте лишних пробелов. Работа prettify заключается в том, чтобы точно настроить пробелы для четкого отображения структуры дерева разбора HTML, в конце концов ...!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...