Python 爬蟲實戰入門(下)

上一篇(

Python 爬蟲實戰入門(下)

跳轉任意門)我們通過requests將豆瓣電影top250的網頁內容都爬取下來了,但是爬取的是整個網頁內容,我們需要對這些內容進行分析,只將我們需要的內容保存下來,不需要的就直接丟棄。


那在這呢,給大家介紹另外一個第三方庫Beautiful Soup,這裡是它的中文介紹:

https://www.crummy.com/software/BeautifulSoup/bs3/documentation.zh.html

可以大概看一下它的介紹:Beautiful Soup 是用Python寫的一個HTML/XML的解析器,它可以很好的處理不規範標記並生成剖析樹(parse tree)。它提供簡單又常用的導航(navigating),搜索以及修改剖析樹的操作。它可以大大節省你的編程時間


那在這呢,咱們大概分析一下我們怎麼對頁面進行分析截取。

1.BeautifulSoup是基於標籤的,所以我們第一步要準確定位到我們需要信息所在的標籤。

2 .從定位的標籤中提取我們需要的信息(一般在屬性或者在string中)

3. 對於提取數據的簡單處理


那我們照著上面的流程,對我們需要實現的程序進行分析

1. 需要準確定位到我們需要信息的標籤,在這裡,如果能有UI自動化基礎,那就會更好理解一些,我們將標題所在的css selector拷貝出來

#content > div > div.article > ol > li:nth-child(1) > div > div.info > div.hd > a > span:nth-child(1)


Python 爬蟲實戰入門(下)


2. 確認需要的信息在text屬性裡


那我們來簡單的實現一下(test3.py):


Python 爬蟲實戰入門(下)


根據打印出來的信息,我們已經可以看到,第一條信息被我們截取出來了


Python 爬蟲實戰入門(下)


我們以標題為例,再來看看每一頁不同信息之間的區別

第一條:#content > div > div.article > ol > li:nth-child(1) > div > div.info > div.hd > a > span:nth-child(1)

第二條:#content > div > div.article > ol > li:nth-child(2) > div > div.info > div.hd > a > span:nth-child(1)

第三條:#content > div > div.article > ol > li:nth-child(3) > div > div.info > div.hd > a > span:nth-child(1)

可以看出來,除了標紅的地方不一致之外,其他的內容一毛一樣,那我們可以做以下處理(test4.py):


Python 爬蟲實戰入門(下)


根據打印信息,可以看到,當前單獨頁面的處理已經輸出出來了


Python 爬蟲實戰入門(下)


現在單獨頁面處理已經完成,接下來我們結合一下上一步的不同請求操作,和上面的頁面處理,將所有的頁面都來處理一下,參考以下代碼(test5.py):


Python 爬蟲實戰入門(下)


根據輸出信息,可以看到top250的信息。到這裡,其實我們的爬蟲已經可以工作了。

現在,大家已經可以將豆瓣電影 top250的內容爬取下來,並提取出需要的信息,可是現在我們能看到信息並沒有辦法持續存儲,每次需要的時候都得重新爬取。那在這呢,我們來試著將爬取出來的信息保存到本地


那在這呢,我們需要藉助文檔寫入來對當前內容進行保存,對文檔寫入的話,我們需要藉助open函數來寫入


先對之前爬取出來的內容進行一下分析:

第1條信息

標題為:肖申克的救贖

評分為:9.7

標題為:希望讓人自由。

第2條信息

標題為:霸王別姬

評分為:9.6

標題為:風華絕代。

第3條信息

標題為:阿甘正傳

評分為:9.5

標題為:一部美國近現代史。

第4條信息

標題為:這個殺手不太冷

評分為:9.4

標題為:怪蜀黍和小蘿莉不得不說的故事。


我們可以看出來,每一條信息都是比較規整的,那我們可以將這些數據存儲成csv文件。


那在這裡就需要將之前的代碼進行一下小改動(testspider.py)


Python 爬蟲實戰入門(下)


運行代碼之後,可以看到當前目錄下生成了一個豆瓣電影250.csv的文件,在這裡要稍微注意

一下,如果直接使用excel打開當前這個csv文件,會出現亂碼


Python 爬蟲實戰入門(下)


我們可以使用記事本打開之後,另存為 – 選擇編碼為“ANSI”:再次用excel打開,就可以看到內容了


Python 爬蟲實戰入門(下)

Python 爬蟲實戰入門(下)


到這裡,我們的Python 爬蟲實戰入門就告一段落,希望大家學習愉快。

本文所有代碼都可以在github上下載,鏈接地址為:

https://github.com/chrisblue0605/testspider_for_py.git

作  者:Testfan Chris

出  處:微信公眾號:自動化軟件測試平臺


分享到:


相關文章: