在 BeautifulSoup 3 之前的版本中,我可以获取任何 HTML 块并以这种方式获得字符串表示:
from BeautifulSoup import BeautifulSoup
soup3 = BeautifulSoup('<div><b>soup 3</b></div>')
print unicode(soup3)
'<div><b>soup</b></div>'
然而对于 BeautifulSoup4,同样的操作会创建额外的标签:
from bs4 import BeautifulSoup
soup4 = BeautifulSoup('<div><b>soup 4</b></div>')
print unicode(soup4)
'<html><body><div><b>soup 4</b></div></body></html>'
^^^^^^^^^^^^ ^^^^^^^^^^^^^^
我不需要<html><body>..</body></html>
BS4 添加的外部标签。我查看了 BS4 文档并在类内部进行了搜索,但找不到任何用于抑制输出中额外标签的设置。我该怎么做?降级到 v3 不是一种选择,因为 BS3 中使用的 SGML 解析器不如BS4 中可用的lxml
或解析器好。html5lib