У меня есть HTML, который я изменяю с помощью BeautifulSoup 4 (4.3.2 в настоящее время). При преобразовании модифицированного супа в строку, все элементы br
записываются как <br/>
:Have BeautifulSoup output <br> вместо <br/>
>>> from bs4 import BeautifulSoup
>>> soup = BeautifulSoup('<p>Paragraph containing<br>line break</p>')
>>> soup.p
<p>Paragraph containing<br/>line break</p>
>>> str(soup.p)
'<p>Paragraph containing<br/>line break</p>'
Это нормально для HTML 5, но не обязательно для HTML 4, и для моего случая использования; Я бы хотел сделать вывод, как раньше.
Аргумент и encode
, кажется, влияет только на содержание строки.
Можно ли сказать BeautifulSoup не для создания самозакрывающихся тегов? Или мне нужно написать функцию самостоятельно, чтобы ходить по супу и создать такую строку?
Когда я выполняю приведенные выше команды на Python 3.4.1 с помощью BeautifulSoup 4.3.2, он дает мне
и ?? : '
Абзац, содержащий
' – ScooterРазрыв строки
Это странно, и я считаю это ошибкой; элемент 'br' должен быть пустым. Я использовал Python 2.7.5 и 'lxml'. – Tobias