Python爬蟲連載17-ItemPipeLine、中間件

1、ItemPipeLine微信

1.爬蟲提取出的數據存入item以後,item中保存的數據須要進一步處理,好比:清洗,去重,存儲等dom

2.pipeline須要process_item函數scrapy

(1)process_item​:spider提出來的item做爲參數出入,同時傳入的還有spider;此方法是必需要實現的​;必須返回一個item對象,被丟棄的item不會被以後的pipeline處理ide

(2)__init__:構造函數函數

進行一些必要的參數初始化學習

(3)open_spider(spider)大數據

spider對象被開啓的時候調用ui

(4)close_spider(spider)url

spider對象被關閉的時候調用.net

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:日誌記錄

2、中間件

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大同小異;每次返回結果的時候會自動調用;能夠有多個,​按順序調用。

3、源碼

2.CSDN:https://blog.csdn.net/weixin_44630050

3.博客園:https://www.cnblogs.com/ruigege0000/

4.歡迎關注微信公衆號:傅里葉變換,我的公衆號,僅用於學習交流,後臺回覆」禮包「,獲取大數據學習資料

 

相關文章
相關標籤/搜索