如何在soupparser中使用html5parser,而在Python中使用lxml?

2024-04-20 07:38:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我将写一个程序,将处理许多破碎的html。现在我遇到了一个导致错误的坏html:

comment may not contain '--' or end with '-'

我搜索了一段时间这个错误,并找到了一个解决方案:用最新版本替换html5解析器,但它不起作用,可能是因为他们使用html5语法分析器.fromstring,我使用soupparser.fromstring. 我必须使用soupparser,因为html5parser不能处理这种破坏的html。你知道吗

我试图阅读源代码和文档,发现soupparser是有用的lxml.html文件作为默认工厂。所以我想如果我可以使用html5parser作为工厂,我可以解决这个问题。我知道fromstring中有一个参数makeelement,但没有示例。你知道吗

所以我想知道:

  1. 如何将默认工厂更改为html5parser?你知道吗
  2. 或者如何重写电子邮件.pyx(这对我来说很难,因为这是赛顿写的)

谢谢!你知道吗

更新:

最后,我通过将lxml降级到版本0.4.4来解决这个问题:

pip install lxml=0.4.4

此版本没有此问题。你知道吗


Tags: or程序版本工厂html错误commentnot