回答
在libxml2 page你可以看到這樣一個字條:
注意一些Python的純粹的喜歡Python綁定的默認設置,而不是抱怨,我建議他們在LXML爲更Python綁定看看libxml2和libxslt並檢查郵件列表。
並在lxml頁這個其他之一:
的LXML XML工具包是一個用於Python化C庫libxml2和結合的libxslt。它的獨特之處在於它將這些庫的速度和XML功能完整性與本地Python API的簡單性結合在一起,它們大多兼容但優於衆所周知的ElementTree API。
所以基本上,與lxml
你得到完全相同的功能, 但與標準庫的ElementTree
庫(兼容AA Python的API,因此這意味着標準庫文件將是有益的學習如何使用lxml
)。這就是爲什麼lxml
優於libxml2
(即使底層實現是同一個)。
編輯:話雖如此,正如其他答案解釋,解析格式不正確的html,您最好的選擇是使用BeautifulSoup
。需要注意的一個有趣的事情是,如果你已經安裝了lxml
,BeautifulSoup
將使用它作爲新版本的documentation解釋說:
如果不指定任何東西,你會得到最好的HTML解析器已安裝。 Beautiful Soup將lxml的解析器評爲最好,然後是html5lib,然後是Python的內置解析器。
無論如何,即使BeautifulSoup
使用lxml
引擎蓋下,你就可以解析破html
,你不能用xml
直接解析。例如:
>>> lxml.etree.fromstring('<html>')
...
XMLSyntaxError: Premature end of data in tag html line 1, line 1, column 7
但是:
>>> bs4.BeautifulSoup('<html>', 'lxml')
<html></html>
最後,注意lxml
也提供老版本的BeautifulSoup
的界面如下:
>>> lxml.html.soupparser.fromstring('<html>')
<Element html at 0x13bd230>
因此,在的結束無論如何,你可能會使用lxml
和BeautifulSoup
。你唯一需要選擇的是你最喜歡的API。
lxml是一般推薦的。具體來說,lxml.html(如果我沒記錯的話)。
我相信它利用libxml2引擎蓋下的內容,但如果html特別討厭,可以回落到beautifulsoup,但不要拿我的話來看看網站! (http://http://lxml.de/)
請嘗試使用beutifulfuloupoup。它旨在解析結構不良的數據。
BeautifulSoup是很好的解析HTML。你可以查看它的例子,並發現它與其他人比較好。
- 1. 在MATLAB和Python中,哪一個適合統計分析?
- 2. 哪一個更適合自定義錯誤:HTML或查看
- 3. LXML網頁抓取,格式錯誤html
- 4. 在Python中使用lxml解析HTML,xpath
- 5. 哪一個更適合在PHP中解析XML?
- 6. 如何解析Python中的格式錯誤的HTML
- 7. 哪一個更適合在C和C++編程中使用?
- 8. 如何在Python和LXML中解析XML?
- 9. 解析python中的一個分析格式字符串
- 10. 使用lxml解析HTML(python)
- 11. libxml2 HTML解析
- 12. 哪個更適合在Java中進行Excel文件解析?
- 13. HTML DOC PDF XPS哪種格式更適合文檔?
- 14. 使用lxml在python中解析html和js
- 15. 用lxml解析xml和html頁面並在python中請求包
- 16. 哪一個最適合xml解析器
- 17. 適合邏輯格式的錯誤
- 18. 錯誤在Ubuntu 9.10安裝的libxml2-dev的 - 爲LXML-etree
- 19. 解析HTML使用LXML在Python
- 20. 哪個更適合在CSS,百分比或像素中使用?
- 21. 哪一個更適合WF4.0的架構?
- 22. Python/lxml:如何在HTML表格中捕捉一行?
- 23. Python lxml getpath錯誤
- 24. 格式錯誤的XML/HTML解析
- 25. 解析格式錯誤的HTML內容
- 26. libxml2 HTML塊解析
- 27. 解析HTML中的Python BeautifulSoup錯誤
- 28. Python - Cerberus,jsonschema,voluptous - 哪一個適合?
- 29. HTML分析錯誤
- 30. 哪個HTML DOM解析器在Android上最適合?