Python内置了许多用于处理HTML和XML的库,很难相信没有支持现实世界HTML解析的功能。
我找到了很多非常棒的第三方库来完成这个任务,但是这个问题是关于Python标准库的。
要求:
- 只使用Python标准库组件(任何2.x版本)
- 支持DOM
- 处理HTML实体(如
) - 处理部分文档(例如:
Hello, <i>World</i>!
)
加分项:
- XPATH支持
- 处理未闭合/格式不正确的标签。(例如:
<big>does anyone here know <html ???
这是我所提供的90%解决方案。它对我尝试过的有限HTML集合有效,但众所周知,它并不是非常健壮。由于我只是在看了15分钟的文档和一行代码后就完成了这个问题,所以我认为我可以向stackoverflow社区咨询类似但更好的解决方案...
from xml.etree.ElementTree import fromstring
DOM = fromstring("<html>%s</html>" % html.replace(' ', ' '))