scrapy 自定義pipline
阿新 • • 發佈:2018-11-05
pipline除了預設的process_item方法還有另外幾個方法:from_crawler,open_spider,close_spider
from scrapy.exceptions import DropItem class ShanPipeline(object): def __init__(self,val): self.value = val#資料庫的名稱 def process_item(self, item, spider): # 操作並進行持久化 # return表示會被後續的pipeline繼續處理 return item # 表示將item丟棄,不會被後續pipeline處理 # raise DropItem() @classmethod def from_crawler(cls, crawler):#crawler settings被讀取到然後放到crawler物件中 """ 初始化時候,用於建立pipeline物件 :param crawler: :return: """ val = crawler.settings.get('資料庫的名稱 必須全都大寫')#在settings中查詢DB的配置 return cls(val) def open_spider(self,spider):#例如開啟資料庫 """ 爬蟲開始執行時,呼叫 :param spider: :return: """ print('000000') def close_spider(self,spider):#例如關閉資料庫 """ 爬蟲關閉時,被呼叫 :param spider: :return: """ print('111111')
最後別忘了在settings中配置好ITEM_PIPELINES = { 'shan.pipelines.ShanPipeline': 300, }