【问题标题】:Inline parsing in BeautifulSoup in PythonPython中BeautifulSoup中的内联解析
【发布时间】:2010-01-22 22:35:24
【问题描述】:
我正在使用 BeautifulSoup 编写 HTML 文档,我希望它不会将内联文本(例如 <p> 标记内的文本)拆分为多行。我得到的问题是用 prettify 解析 <p>a<span>b</span>c</p> 会给我输出
<p>
a
<span>
b
</span>
c
</p>
现在 HTML 在 a、b、c 之间显示空格,这是我不想要的。我该如何避免这种情况?
【问题讨论】:
标签:
python
beautifulsoup
html
【解决方案1】:
不使用prettify 怎么样?
BeautifulSoup.BeautifulSoup('<p>a<span>b</span>c</p>').renderContents()
输出没有多余空格的原始 HTML。您可以使用例如Firebug 稍后可以仔细查看文档的结构,而无需在构建时对其进行“美化”。
【解决方案2】:
我会这样做:
from BeautifulSoup import BeautifulSoup
ht = '<p>a<span>b</span>c</p>'
soup = BeautifulSoup(ht)
print soup
并避免获得任何额外的空格。 prettify 的工作就是调整空白以清晰显示 HTML 解析树的结构,毕竟...!