我正在使用 lxml 3.1.0(使用 easy_install 安装),看到奇怪的结果:
> from lxml.html.clean import clean_html
> clean_html("<html><body><h1>hi</h1></body></html>")
'<div><body><h1>hi</h1></body></div>'
html
标签被替换为 div
。
根据 http://lxml.de/lxmlhtml.html#cleaning-up-html 的示例 html 也会发生同样的情况
什么给了?我是遇到了 lxml 的错误,还是与 libxml2 的版本不兼容,或者这在某种程度上是预料之中的?
最佳答案
我认为您需要一个 Cleaner
来单独保留 page_structure
:
>>> from lxml.html.clean import Cleaner
>>> cleaner = Cleaner(page_structure=False)
>>> cleaner.clean_html("<html><body><h1>hi</h1></body></html>")
'<html><body><h1>hi</h1></body></html>'
如所述here , page_structure
默认为 True
。我怀疑您提供的站点上的文档不正确或已过时。
编辑#1:可以在 this 中找到关于这是预期行为的另一确认信息在源代码中测试。 pull request已提交以更正文档。
编辑#2:pull request已于 2013-04-28 合并到 master 中。
关于python - lxml:clean_html 用 div 替换 html 标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15556391/