烂 HTML 的神队友就是这个老牌的HTML5Lib了,版本0.999,基本算是快稳定收尾的那一版。它最大的优点就是——容错强,页面再乱也能给你转成一棵能用的 DOM 树,嗯,爬虫用起来特省心。尤其你要抓那种用户生成内容、论坛贴、评论区,格式一塌糊涂,用它解析,比手写正则靠谱多了。

压缩包html5lib-0.999.tar.gz里是完整源码,setup.pyREADMELICENSE都在,一解压你就能本地装,pip install .走起。源码读起来也不绕,改点东西也方便。

这库是用Python写的,底层走的是 HTML5 的解析规范,不像有些库靠猜,HTML5Lib 是真按浏览器那套来的,所以和浏览器结果一致度高。你配合BeautifulSoup一起用效果更好,比如:

from bs4 import BeautifulSoup
import html5lib
soup = BeautifulSoup(broken_html, 'html5lib')

这种组合蛮稳的,结构清晰,节点也比较完整。

如果你常写爬虫,或者做网页数据清洗,推荐你下这个版本玩玩,稳定、兼容、容错高,真挺实用的。