python - lxml:clean_html 用 div 替换 html 标签?

标签 python lxml libxml2

我正在使用 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/

相关文章:

c - 如何使用 arm-linux-gnueabihf-gcc 编译器交叉编译 libxml2。如何使用第三方库交叉编译?

python - 类的 IPython 表示

python - 如何在 bash 中从 stdout 读取数组

python - 类型错误: '>' 和 'function' 实例之间不支持 'int'

python - 如何将实时日志写入 AWS Glue 日志

python - 使用lxml提取属性值

python - 如何为 pypy 构建 pyquery?

html - 使用 libxml SAX 解析 HTML 片段

python - 使用 lxml 解析时字符串在方括号处中断

python - 需要帮助在 os x 10.7 上安装 lxml