1. 程式人生 > >Python爬蟲包 BeautifulSoup 學習(十) 各種html解析器的比較及使用

Python爬蟲包 BeautifulSoup 學習(十) 各種html解析器的比較及使用

BeautifulSoup號稱Python中最受歡迎的HTML解析庫之一,但是這並不是唯一的選擇。

解析庫

lxml

這個庫可以用來解析HTML和XML文件,以非常底層的實現而聞名,大部分原始碼都是C語言寫的,雖然學習這東西要花一定的時間,但是它的處理速度非常快。

HTML parser

這是python自帶的解析庫,所以很方便。

解析器

其實上面提到的那些庫,都可以作為BeautifulSoup的解析庫,下面對各種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")    

優點

速度很快
相容性好

缺點

需要額外的C語言支援

lxml’s XML parser

使用語法

BeautifulSoup(markup, "lxml-xml") BeautifulSoup(markup,"xml"
)

優點

速度很快

缺點

現在只支援xml解析
需要額外的C語言支援

html5lib

使用語法

BeautifulSoup(markup, "html5lib")   

優點

相容性很好
可以像web瀏覽器一樣解析html頁面
Creates valid HTML5

缺點

速度很慢
需要額外的python支援