HTML解析之BeautifulSoup

  BeautifulSoup是一個用於從HTML和XML文件中提取數據的Python庫。BeautifulSoup提供一些簡單的、函數用來處理導航、搜索、修改分析樹等功能。BeautifulSoup模塊中的查找提取功能很是強大,並且很是便捷,它一般能夠節省程序員數小時或數天的工做時間。html

  BeautifulSoup自動將輸入文檔轉換爲Unicode編碼,輸出文檔轉換爲UTF-8編碼。你不須要考慮編碼方式,除非文檔沒有指定一個編碼方式,這時,BeautifulSoup就不能自動識別編碼方式了。而後,你僅僅須要說明一下原始編碼方式就能夠了。html5

一、安裝,先裝bs4,再裝BeautifulSoup4

BeautifulSoup支持python標準庫中包含的HTML解析器,但它也支持許多第三方python解釋器,其中包含lxml解釋器。這個安裝就行。python

  另外一個解釋器是html5lib,它是一個解析HTML的python庫,按照web瀏覽器的方式解析HTML。這個安裝就行程序員

 

解釋器的優缺點:web

 解釋器  用法 優勢   缺點
 Python標準庫 BeautifulSoup(markup,'html.parser') 

Python標準庫   執行速度適中 瀏覽器

部分版本中文檔容錯能力差 
 lxml的HTML解釋器 BeautifulSoup(markup,'lxml')   速度快,文檔容錯能力強  須要安裝c語言庫
 lxml的XML解釋器

BeautifulSoup(markup,'lxml-xml')函數

BeautifulSoup(markup,'xml') 編碼

 速度快spa

惟一支持xml的解析器code

須要安裝c語言庫 
 html5lib BeautifulSoup(markup,'html5lib') 

最好的容錯性

以瀏覽器的方式解析文檔生成HTML5格式的文檔 

速度慢

不依賴外部擴展 

 

二、BeautifulSoup的使用

下面用BeautifulSoup進行HTML的解析工做,具體以下:

from bs4 import BeautifulSoup

#建立一個BeautifulSoup對象,獲取頁面正文
soup=BeautifulSoup(open('test.html'),features='lxml')
print(soup.prettify())  #打印格式化後的代碼
相關文章
相關標籤/搜索