python xml.dom解析问题

时间:2011-08-24 15:44:18

标签: python xml html-parsing

我正在编写一个程序,其中第一步采用URL地址并打开页面。然后它将内容放入xml.dom.minidom解析器:

from xml.dom.minidom import parse

page = urllib2.urlopen(page_url)
parser = parse(page)

问题是很多页面都有不匹配的标签和特殊字符,因此解析方法会引发错误。如果有<br>而不是<br /> ...

,它也会引发错误

我试过这样:

from xml.dom.minidom import parseString

page = urllib2.urlopen(page_url)
data = ""
for line in page.readlines():
    data += str(line.replace("<br>", "<br />").replace(OTHER).replace...)
parser = parse(data)

但是,这不是一个好的解决方案。

那么,有没有对不匹配的标签和html代码中的其他错误不敏感的lib?

1 个答案:

答案 0 :(得分:2)

我更喜欢lxml.html,它非常强大,而且lxml通常非常快且具有非常好的功能,包括XPath support

import lxml.html

doc = lxml.html.parse('http://example.com')