【发布时间】:2015-01-30 11:20:35
【问题描述】:
我有一些使用 BeautifulSoup 4(当前为 4.3.2)修改的 HTML。将修改后的soup转换为字符串时,所有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 和我的用例来说不一定;我想像以前一样产生输出。
prettify 和 encode 方法的 formatter 参数似乎只影响字符串内容。
是否可以告诉 BeautifulSoup 不 生成自闭合标签? 还是我需要自己编写一个函数来走汤并创建这样的字符串?
【问题讨论】:
-
当我在 Python 3.4.1 上使用 BeautifulSoup 4.3.2 执行上述命令时,它给了我
和 ?? : '包含
'
换行符的段落 -
这很奇怪,我认为这是一个错误;
br元素应该为空。我使用了 Python 2.7.5 和lxml。
标签: python html beautifulsoup