2011-08-24 70 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