您好,登錄后才能下訂單哦!
先發(fā)官方文檔的地址:官方文檔
學習使用的書籍是Python網(wǎng)絡數(shù)據(jù)采集(Ryan Mitchell著),大約是一些筆記的整理。
Beautiful Soup的簡介
簡單來說,Beautiful Soup是python的一個庫,最主要的功能是從網(wǎng)頁抓取數(shù)據(jù)。官方解釋如下:
Beautiful Soup提供一些簡單的、python式的函數(shù)用來處理導航、搜索、修改分析樹等功能。它是一個工具箱,通過解析文檔為用戶提供需要抓取的數(shù)據(jù),因為簡單,所以不需要多少代碼就可以寫出一個完整的應用程序。
Beautiful Soup自動將輸入文檔轉換為Unicode編碼,輸出文檔轉換為utf-8編碼。你不需要考慮編碼方式,除非文檔沒有指定一個編碼方式,這時,Beautiful Soup就不能自動識別編碼方式了。然后,你僅僅需要說明一下原始編碼方式就可以了。
Beautiful Soup已成為和lxml、html6lib一樣出色的python解釋器,為用戶靈活地提供不同的解析策略或強勁的速度。
安裝
Beautiful Soup 3 目前已經停止開發(fā),推薦在現(xiàn)在的項目中使用Beautiful Soup 4,不過它已經被移植到BS4了,也就是說導入時我們需要 import bs4 。所以這里我們用的版本是 Beautiful Soup 4.3.2 (簡稱BS4)。
書本中的源代碼用的是Python3,但是據(jù)說 BS4 對 Python3 的支持不夠好,所以我用的是 Python2.7。源碼中也會相應地調整一些包的引入。
因為之前寫過CNN等,需要在windows下配置環(huán)境,所以已經安裝了anaconda。如果安裝了anaconda的讀者,可以直接使用pip安裝,conda需要搜索一下,直接安裝時不行的。
anaconda search -t conda beautifulsoup conda install beautifulsoup4 pip install beautifulsoup4
如果想安裝最新的版本,請直接下載安裝包來手動安裝,也是十分方便的方法。在這里我安裝的是 beautifulsoup4 (4.5.1)
BeautifulSoup 3.2.1
BeautifulSoup 4.5.1
下載完成之后解壓
運行下面的命令即可完成安裝
sudo python setup.py install
有時候的安裝方式會需手動安裝 lxml,如果用conda安裝會自動把依賴包給安裝上。
pip install lxml
創(chuàng)建 Beautiful Soup 對象
首先導入bs4庫
from bs4 import BeautifulSoup
用urlopen讀取一段HTML的內容
import sys if sys.version_info[0] == 2: from urllib2 import urlopen # Python 2 else: from urllib.request import urlopen # Python3 html = urlopen(http://www.pythonscraping.com/exercises/exercise1.html)
用讀取的內容創(chuàng)建beautifulsoup 對象
bsObj = BeautifulSoup(html.read()) print(bsObj.h2)
此外我們也可以用本地的HTML文件來創(chuàng)建對象,例如
soup = BeautifulSoup(open('index.html'))
輸出測試
print bsObj.h2 print bsObj.prettify()
<h2>An Interesting Title</h2>
<html> <head> <title> A Useful Page </title> </head> <body> <h2> An Interesting Title </h2> <div> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. </div> </body> </html>
以上便是輸出結果,格式化打印出了它的內容,并且可以通過成員對象的方式獲得解析后的HTML層次。
以上全部為本篇文章的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。