天天看點

資料采集第三次實踐

第三次作業

作業①:

要求:指定一個網站,爬取這個網站中的所有的所有圖檔,例如中國氣象網(http://www.weather.com.cn)。分别使用單線程和多線程的方式爬取。(限定爬取圖檔數量為學号後3位)

輸出資訊:

将下載下傳的url資訊在控制台輸出,并将下載下傳的圖檔存儲在result子檔案夾中,并給出截圖。

單線程實作過程:

① beautifulsoup解析網頁:

② 翻頁處理的函數:

資料采集第三次實踐

由上圖可以看出,城市資訊可以以清單形式存儲在dd a 節點下的

③ 存儲圖檔的函數:

④ 主函數:

⑤ 結果展示:

資料采集第三次實踐
資料采集第三次實踐

多線程實作過程:

① imagespider函數:

② download函數:

③ 主函數:

④ 結果展示:

由于是多線程,是以下載下傳圖檔是沒有按照爬取順序的

資料采集第三次實踐
資料采集第三次實踐

作業②

要求:使用scrapy架構複現作業①。

輸出資訊:

同作業①

實作過程:

① items.py:

② piplines.py:(與作業①的存儲函數起到一樣的作用)

③ setting.py

④ myspider.py(與作業①主函數起到一樣的作用,爬取圖檔資訊)

​ 圖檔資訊:

​ 翻頁處理:

資料采集第三次實踐
資料采集第三次實踐

心得體會:

作業③:

要求:爬取豆瓣電影資料使用scrapy和xpath,并将内容存儲到資料庫,同時将圖檔存儲在imgs路徑下。

候選網站: https://movie.douban.com/top250

序号

電影名稱

導演

演員

簡介

電影評分

電影封面

1

肖申克的救贖

弗蘭克·德拉邦特

蒂姆·羅賓斯

希望讓人自由

9.7

./imgs/xsk.jpg

2....

② piplines.py:

​ 将資訊存儲到資料庫:

​ 儲存圖檔到本地:

③ setting.py:

④ myspider.py:

​ 解析網頁:

​ 找到存儲電影的節點:

​ 找到每個節點中我們想要的資訊:

資料采集第三次實踐

​ 翻頁處理:

資料采集第三次實踐
資料采集第三次實踐

​ 由上圖看出,下一頁的hrefl + 首頁url 可以得到完整的url:

結果展示:

資料采集第三次實踐
資料采集第三次實踐

心得體會*

在作業三中,遇到的問題主要是導演與主演資訊存在一個text裡,需要對字元串進行分割:

我們首先用xpath方法找到包含此text的字元串:(代碼實作)

再觀察,對于某些電影是有主演的,而有些電影是沒有主演的

資料采集第三次實踐
資料采集第三次實踐

故我們需要進行細節處理:

利用source.split(':')對source進行分割,對于有主演的電影,分割後的段數大于2,而對于無主演的電影,分割後的段數小于等于2;

注:split(' ')[1]是為了分開英文名與中文名并輸出中文名

附:完整代碼連結