Python scrapy基礎教程(一)

HuangZhang_123發表於2017-04-11

歡迎加入學習交流QQ群:657341423


scrapy作為一個爬蟲框架,其功能是足夠強大的。
這一框架就像一條爬蟲流水線,有工作佇列、有下載器、有分配任務的引擎,有對爬取資料寫邏輯的地方、也有寫儲存處理資料的資料庫SQL的地方。對於scrapy而言,更多的時候是在配置scrapy。先要繼承一個spider寫爬蟲的主體,然後還要在setting裡寫配置,在pipeline裡寫資料庫。而且還要注意在主函式parse裡的返回值,返回item時是交給pipline做資料處理,返回Request回撥函式時是向爬取佇列註冊二級連結等等。這樣看scrapy使用時比requests要繁瑣很多,後者只需要呼叫一下requests類,然後配置一下成員變數就可以使用,但獲取到html後其他的事情就都得你自己處理,自己寫的程式碼還不是最好的。而scrapy在配置好後就可以很順暢的跑起來,還會自動處理很多東西,而且往往效率比自己造的輪子效率高。所以如果是寫個小爬蟲,用request就可以了,如果程式碼量級稍大一點,不想費心管理了,就可以用scrapy,當然也可以自己造輪子

直接上教程:
python 3.5,Windows7環境下
這是爬取百度知道的問題列表題目,然後寫入txt中。
這裡寫圖片描述

新建專案:

scrapy startproject textsc

然後在spider資料夾下新建BaiSpider.py檔案
這裡寫圖片描述
下面來簡單介紹一下各個檔案的作用:
scrapy.cfg:專案的配置檔案
textsc/:專案的Python模組,將會從這裡引用程式碼
textsc/items.py:專案的items檔案(用於爬取資料定義和例項化)
textsc/pipelines.py:專案的pipelines檔案,主要用於存寫資料(寫入資料庫等)
textsc/settings.py:專案的設定檔案
textsc/spiders/:儲存爬蟲的目錄(爬蟲的內容,如何爬蟲,取那些資料等)

1.items.py
這裡寫圖片描述
其中紅色部分需要注意,TextscItem類名用於匯入spiders中引用
TitleName = scrapy.Field()自定義資料

2.BaiSpider.py
這裡寫圖片描述
start_urls:可以設定多個url連結
from textsc.items import TextscItem:匯入items.py裡面的TextscItem類
item=TextscItem():例項化
item[‘TitleName’] = items:賦值
yield item:這個關鍵,如果沒有這個,item不會傳遞到pipelines.py裡。用return item也行

3.pipelines.py
這裡寫圖片描述
註釋“Don’t……’”需要自行設定settings.py檔案
第二個紅色框為自行編寫的程式碼。open模式為a,這樣可以連續寫入兩個url的資料,如果用w,只能寫入最後一個url的資料。

4.settings.py
這裡寫圖片描述

執行結果:
這裡寫圖片描述
這裡寫圖片描述

程式碼下載


相關文章