2011-08-24 60 views
0

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

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) 

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

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

回答

2

我更喜欢lxml.html,它非常强大,并且lxml一般来说速度相当快,并具有非常好的功能,包括XPath support

import lxml.html 

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

nop不工作。 o yea和lxml不包含.html包(仅包含lxml.parse) – karantan

+0

也许您正在使用旧版本? [因为它当然会](http://lxml.de/lxmlhtml.html)。 – zeekay