前言
Beautiful Soup是python的一個HTML或XML的解析庫,我們可以用它來方便的從網頁中提取數據,它擁有強大的API和多樣的解析方式。
Beautiful Soup的三個特點:
Beautiful Soup提供一些簡單的方法和python式函數,用于瀏覽,搜索和修改解析樹,它是一個工具箱,通過解析文檔為用戶提供需要抓取的數據 Beautiful Soup自動將轉入穩定轉換為Unicode編碼,輸出文檔轉換為UTF-8編碼,不需要考慮編碼,除非文檔沒有指定編碼方式,這時只需要指定原始編碼即可 Beautiful Soup位于流行的Python解析器(如lxml和html5lib)之上,允許您嘗試不同的解析策略或交易速度以獲得靈活性。1、Beautiful Soup4的安裝配置
Beautiful Soup4通過PyPi發布,所以可以通過系統管理包工具安裝,包名字為beautifulsoup4
$easy_install beautifulsoup4
或者
$pip install beautifulsoup4
也可用通過下載源碼包來安裝:
#wget https://www.crummy.com/software/BeautifulSoup/bs4/download/4.0/beautifulsoup4-4.1.0.tar.gz#tar xf beautifulsoup4-4.1.0.tar.gz#cd beautifulsoup4#python setup.py install
Beautiful Soup在解析時實際上是依賴解析器的,它除了支持python標準庫中的HTML解析器外還支持第三方解析器如lxml
Beautiful Soup支持的解析器,以及它們的優缺點:
| 解析器 | 使用方法 | 優勢 | 劣勢 |
|---|---|---|---|
| Python標準庫 | BeautifulSoup(markup,"html.parser") | Python的內置標準庫 執行速度適中 文檔容錯能力強 | Python 2.7.3 or 3.2.2)前 的版本中文檔容錯能力差 |
| lxml HTML 解析器 | BeautifulSoup(markup,"lxml") | 速度快 文檔容錯能力強 | 需要安裝C語言庫 |
| lxml XML 解析器 | BeautifulSoup(markup,["lxml", "xml"]) BeautifulSoup(markup,"xml") | 速度快 唯一支持XML的解析器 | 需要安裝C語言庫 |
| html5lib | BeautifulSoup(markup,"html5lib") | 最好的容錯性 以瀏覽器的方式解析文檔 生成HTML5格式的文檔 | 速度慢 不依賴外部擴展 |
安裝解析器:
$pip install lxml$pip install html5lib
推薦使用lxml作為解析器,因為效率更高. 在Python2.7.3之前的版本和Python3中3.2.2之前的版本,必須安裝lxml或html5lib, 因為那些Python版本的標準庫中內置的HTML解析方法不夠穩定
新聞熱點
疑難解答