當(dāng)Item 在Spider中被收集之后,就會被傳遞到Item Pipeline中進行處理

每個item pipeline組件是實現(xiàn)了簡單的方法的python類,負(fù)責(zé)接收到item并通過它執(zhí)行一些行為,同時也決定此Item是否繼續(xù)通過pipeline,或者被丟棄而不再進行處理

item pipeline的主要作用:

  1. 清理html數(shù)據(jù)

  2. 驗證爬取的數(shù)據(jù)

  3. 去重并丟棄

  4. 講爬取的結(jié)果保存到數(shù)據(jù)庫中或文件中

編寫自己的item pipeline

process_item(self,item,spider)

每個item piple組件是一個獨立的pyhton類,必須實現(xiàn)以process_item(self,item,spider)方法
每個item pipeline組件都需要調(diào)用該方法,這個方法必須返回一個具有數(shù)據(jù)的dict,或者item對象,或者拋出DropItem異常,被丟棄的item將不會被之后的pipeline組件所處理

下面的方法也可以選擇實現(xiàn)

open_spider(self,spider)
表示當(dāng)spider被開啟的時候調(diào)用這個方法

close_spider(self,spider)
當(dāng)spider掛去年比時候這個方法被調(diào)用

from_crawler(cls,crawler)
這個和我們在前面說spider的時候的用法是一樣的,可以用于獲取settings配置文件中的信息,需要注意的這個是一個類方法,用法例子如下:

Android培訓(xùn),安卓培訓(xùn),手機開發(fā)培訓(xùn),移動開發(fā)培訓(xùn),云培訓(xùn)培訓(xùn)

一些item pipeline的使用例子(官網(wǎng)說明)

例子1
這個例子實現(xiàn)的是判斷item中是否包含price以及price_excludes_vat,如果存在則調(diào)整了price屬性,都讓item['price'] = item['price'] * self.vat_factor,如果不存在則返回DropItem

Android培訓(xùn),安卓培訓(xùn),手機開發(fā)培訓(xùn),移動開發(fā)培訓(xùn),云培訓(xùn)培訓(xùn)

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運,軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式