【发布时间】:2011-10-15 18:34:42
【问题描述】:
我有一些随机的 HTML,我使用 BeautifulSoup 来解析它,但在大多数情况下 (>70%) 它会阻塞。我尝试使用美汤 3.0.8 和 3.2.0(3.1.0 以上有一些问题),但结果几乎相同。
我不禁想起了 Python 中可用的几个 HTML 解析器选项:
- 美汤
- lxml
- pyquery
我打算测试所有这些,但我想知道您的测试中哪一个最宽容,甚至可以尝试解析错误的 HTML。
【问题讨论】:
-
因为这不是一个真正的答案,所以我不会发布它,但您所描述的正是开发 Beautiful Soup 的原因:解析错误的 HTML。如果你有一个格式非常糟糕的文档,甚至 Beautiful Soup 都无法解析它,那么你可能就不走运了。我听说过的其他解析器(包括 lxml)要严格得多。
-
为了保持这个目标,发布每个解析器所针对的最小 sn-p 会很有用。
-
我没有尝试过任何其他解析器,但只尝试了 beautifulsoup,在我的案例中,它确实有 30% 的时间有效,这仍然令人印象深刻。
-
@Paul,我已经看过了,这就是为什么我提到我同时使用了 3.0.8 和 3.2.0,我将尝试 4.0 分支来查看其他改进并在这里发布我的结果跨度>
标签: python html-parsing beautifulsoup lxml pyquery