使用XPATH处理格式错误的HTML文件

MrG*_*ass 2 python xml xpath elementtree

我继承了别人的(可怕的)代码库,目前我正拼命想要解决问题.今天,这意味着在我们的模板/主页中收集所有死链接的列表.

我目前正在使用Python中的ElementTree,尝试使用xpath解析网站.不幸的是,似乎html格式不正确,而且ElementTree一直在抛出错误.

是否有更多错误友好的xpath解析器?有没有办法在非严格模式下运行ElementTree?是否有其他方法(如预处理)可用于帮助此过程?

Fre*_*Foo 5

LXML可以解析一些格式错误的HTML,实现ElementTree API的扩展版本,并支持XPath:

>>> from lxml import html
>>> t = html.fromstring("""<html><body>Hello! <p> Goodbye.</body></html""")
>>> html.tostring(t.xpath("//body")[0])
'<body>Hello! <p> Goodbye.</p></body>'
Run Code Online (Sandbox Code Playgroud)