1. 程式人生 > >BeautifulSoup中各種html解析器的比較及使用

BeautifulSoup中各種html解析器的比較及使用

Beautiful Soup解析器比較

·Beautiful Soup支援各種html解析器,包括python自帶的標準庫,還有其他的許多第三方庫模組。其中一個就是lxml parser,至於lxml parser的安裝,可以通過以下方法安裝:

1)easy_install lxml   2)pip install lxml    

另外,python對於模組的安裝,可以檢視部落格說明,分為兩種:easy_install pip.

另外一種純python解析器為html5lib解析器,可以像web瀏覽器那樣解析html頁面,你可以通過下面兩種方式安裝html5lib

1)easy_install 

html5lib   2)pip install html5lib

下面對各種html解析器的優缺點做一下對比:

解析器 使用方法 優點 缺點
Python’s html.parser BeautifulSoup(markup,"html.parser")
  • python自身帶有
  • 速度比較快
  • 能較好相容 (as of Python 2.7.3 and 3.2.)
不能很好地相容(before Python 2.7.3 or 3.2.2)
lxml’s HTML parser BeautifulSoup(markup,"lxml")
  • 速度很快
  • 相容性好
External C dependency
lxml’s XML parser BeautifulSoup(markup, "lxml-xml")BeautifulSoup(markup,"xml")    速度很快
  • The only currently supported XML parser
External C dependency
html5lib BeautifulSoup(markup,"html5lib") 1)相容性很好
2)可以像web瀏覽器一樣解析html頁面
3) Creates valid HTML5
  • 速度很慢
  • External Python dependency

如果你想追求速度的話,建議使用lxml,如果你使用的python版本2.x是2.7.3之前的版本,或者python3.x的是3.2.2之前的版本,你很有必要安裝使用html5lib或lxml使用,因為python內建的html解析器不能很好地適應於這些老版本。