BeautifulSoup是一個用於從HTML和XML文件中提取數據的Python庫。BeautifulSoup提供一些簡單的、函數用來處理導航、搜索、修改分析樹等功能。BeautifulSoup模塊中的查找提取功能很是強大,並且很是便捷,它一般能夠節省程序員數小時或數天的工做時間。html
BeautifulSoup自動將輸入文檔轉換爲Unicode編碼,輸出文檔轉換爲UTF-8編碼。你不須要考慮編碼方式,除非文檔沒有指定一個編碼方式,這時,BeautifulSoup就不能自動識別編碼方式了。而後,你僅僅須要說明一下原始編碼方式就能夠了。html5
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進行HTML的解析工做,具體以下:
from bs4 import BeautifulSoup #建立一個BeautifulSoup對象,獲取頁面正文 soup=BeautifulSoup(open('test.html'),features='lxml') print(soup.prettify()) #打印格式化後的代碼