一、ItemPipeLine
1.爬蟲提取出的資料存入item之后,item中保存的資料需要進一步處理,比如:清洗,去重,存盤等
2.pipeline需要process_item函式
(1)process_item?:spider提出來的item作為引數出入,同時傳入的還有spider;此方法是必須要實作的?;必須回傳一個item物件,被丟棄的item不會被之后的pipeline處理
(2)__init__:建構式
進行一些必要的引數初始化
(3)open_spider(spider)
spider物件被開啟的時候呼叫
(4)close_spider(spider)
spider物件被關閉的時候呼叫
3.Spider
(1)對應的是檔案夾spiders下的檔案
(2)__init__:初始化爬蟲的名稱,start_urls串列
(3)start_requests:生成Requests物件嫁給Scrapy下載并回傳response
(4)parse:根據回傳的response決議出相應的item,item自動進入到pip?eline;如果需要,決議出url,url自動交給requests模塊,一直回圈下去
(5)start_request?:此方法僅能被呼叫一次,讀取start_urls內容并啟動回圈程序
(6)?name:設定爬蟲的名字
(7)start_urls:設定開始第一批爬取的url
(8)allow_?domains:spider允許爬取的域名串列
(9)start_request(self):只被呼叫一次
(10)parse
(11)log:日志記錄
二、中間件
1.定義:中間件是處于引擎和下載器中間的一層組件
2.作用:對發出的請求和回傳的結果進行預處理
3.?數量:可以有很多個,被按順序加載執行
4?.位置:在middlewares檔案中,需要在settings中設定以便生效
5.撰寫十分簡單
6.必須實作以下一個或者多個方法
(1)process_request(self,request,spider)
在request通過的時候?被呼叫;必須回傳None或者Request或Response或raise IgnoreRequest;
None:scrapy將繼續處理該request
Request:scrapy將停止呼叫process_request并沖洗調度回傳的request
Response:scrapy將不會呼叫其他的process_request或者process_exception,直接將該response作為結果同時會呼叫process_response函式
(2)process_response(self,request,response,spider)
跟process_request大同小異;每次回傳結果的時候會自動呼叫;可以有多個,?按順序呼叫,
三、原始碼
2.CSDN:https://blog.csdn.net/weixin_44630050
3.博客園:https://www.cnblogs.com/ruigege0000/
4.歡迎關注微信公眾號:傅里葉變換,個人公眾號,僅用于學習交流,后臺回復”禮包“,獲取大資料學習資料

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/165068.html
標籤:Python
上一篇:執行Python程式時模塊報錯
下一篇:爬蟲之Scrapy框架
