我想解析一個網頁以檢索一些關於它的信息(我的確切問題是檢索此列表中的所有項目:http://www.computerhope.com/vdef.htm)。在Python中解析網頁的問題
但是,我無法弄清楚如何去做。
很多在互聯網上開始這個教程(簡體): html5lib.parse(urlopen("http://www.computerhope.com/vdef.htm"))
但在那之後,沒有教程解釋我是如何可以瀏覽文件,去我尋找HTML部分。
其他一些教程解釋瞭如何使用CSSSelector
來做到這一點,但所有教程不是以網頁開頭,而是以字符串代替(例如:http://lxml.de/cssselect.html)。
所以我試圖創建與使用本網頁中的樹: fromstring(urlopen("http://www.computerhope.com/vdef.htm").read())
但我得到這個錯誤: lxml.etree.XMLSyntaxError: Specification mandate value for attribute itemscope, line 3, column 28
。這個錯誤是由於有一個屬性沒有指定(例如<input attribute></input>
),但由於我不控制網頁,我無法繞過它。
因此,這裏有可能解決我的問題,幾個問題:
- 我如何可以瀏覽一棵樹?
- 有沒有辦法讓解析器不那麼嚴格?
謝謝!
尋找XPath。這是解析任何類似XML的結構的強大工具。 –
你爲什麼使用etree來解析html? –