通過(guò)第一部分的練習(xí),,我們已經(jīng)有了一個(gè)可運(yùn)行的爬蟲,。這一部分我們?cè)敿?xì)的看看如何使用BeautifulSoup從網(wǎng)頁(yè)中提取我們需要的數(shù)據(jù),學(xué)習(xí)的目標(biāo)是能夠使用BeautifulSoup從網(wǎng)頁(yè)中提取任意的數(shù)據(jù),。 HTML文檔和CSS選擇器我們知道我們抓取回來(lái)的網(wǎng)頁(yè)是由HTML和CSS構(gòu)成,,HTML文檔對(duì)象模型(DOM)將HTML文檔表達(dá)為樹結(jié)構(gòu)。而提取網(wǎng)頁(yè)特定數(shù)據(jù)實(shí)際上就是按照指定的特征匹配文檔樹并讀取數(shù)據(jù)內(nèi)容,。 BeautifulSoup支持大部分的CSS選擇器,在tag或BeautifulSoup對(duì)象的.select()方法中傳入字符串參數(shù),即可使用CSS選擇器的語(yǔ)法找到tag。以上面的HTML為例,,下面分別使用tag,,tag+id, tag+class對(duì)網(wǎng)頁(yè)元素定位: 爬蟲實(shí)例現(xiàn)在回到我們抓取豆瓣圖書的例子,,我們看看怎么使用BeautifulSoup從網(wǎng)頁(yè)中提取書名,,封面圖片,圖書簡(jiǎn)介等,,代碼如下,。感興趣的讀者可以添加代碼提取更多內(nèi)容。 提取數(shù)據(jù)的關(guān)鍵是分析并確定網(wǎng)頁(yè)元素的CSS選擇器,。幸運(yùn)的是瀏覽器可以幫我們很大的忙,以Chrome瀏覽器為例,,在打開的網(wǎng)頁(yè)上對(duì)想要提取的數(shù)據(jù)點(diǎn)擊右鍵,,在彈出的菜單項(xiàng)中選擇檢查元素。如圖所示我們可以非常方便的得到元素對(duì)應(yīng)的CSS選擇器,。 好,現(xiàn)在我們把數(shù)據(jù)提取部分代碼加入我們的爬蟲中,。再次運(yùn)行程序,,圖書書名,圖書封面,,簡(jiǎn)介信息便被提取和打印出來(lái)了,。 總結(jié)這一部分里我們?cè)敿?xì)介紹了如何提取網(wǎng)頁(yè)數(shù)據(jù),。BeautifulSoup還有許多其它的API可以訪問(wèn)html的內(nèi)容,,細(xì)節(jié)可以參考BeautifulSoup文檔。 在下一部分里我們將如何存儲(chǔ)爬蟲運(yùn)行數(shù)據(jù),,以及抓取到的各種數(shù)據(jù),。 |
|