python - 关于 scrapy 的 pipeline 和 items 问题
PHP中文网
PHP中文网 2017-04-18 09:49:55
0
3
510

能不能实现这种:

  1. aItem的数据由aPipeline处理

  2. bItem的数据由bPipeline处理

PHP中文网
PHP中文网

认证高级PHP讲师

全部回覆(3)
Peter_Zhu

目的是不是這樣呢,
比如你items.py有以下幾個item

然後在pipelines.py中的process_item函數裡可以如下操作

這樣就可以把不同的資料分開處理了,

Peter_Zhu

你可以在 pipeline 裡判斷是哪個爬蟲的結果:

def process_item(self, item, spider):
    if spider.name == 'news':
        #这里写存入 News 表的逻辑
        news = News()
        ...(省略部分代码)
        self.session.add(news)
        self.session.commit()
     elif spider.name == 'bsnews':
        #这里写存入 News 表的逻辑
        bsnews = BsNews()
        ...(省略部分代码)
        self.session.add(bsnews)
        self.session.commit()
        
      return item

對於這種多個爬蟲在一個工程裡的,需要不同爬蟲在 pipeline 裡使用不同邏輯的問題 scrapy 的作者是這麼解釋的。
去看看

洪涛

可以的 pipelines的process_item有個spider參數,可以篩選對應的spider走這個pipeline

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!