Heim  >  Fragen und Antworten  >  Hauptteil

python - 关于 scrapy 的 pipeline 和 items 问题

能不能实现这种:

  1. aItem的数据由aPipeline处理

  2. bItem的数据由bPipeline处理

PHP中文网PHP中文网2741 Tage vor512

Antworte allen(3)Ich werde antworten

  • 天蓬老师

    天蓬老师2017-04-18 09:51:55

    目的是不是这样呢,
    比如你items.py有如下几个item

    然后在pipelines.py中的process_item函数里可以如下操作

    这样就可以把不同的数据分开处理了,

    Antwort
    0
  • 天蓬老师

    天蓬老师2017-04-18 09:51:55

    你可以在 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 的作者是这么解释的。
    去看看

    Antwort
    0
  • PHP中文网

    PHP中文网2017-04-18 09:51:55

    可以的 pipelines的process_item有个spider参数,可以筛选相应的spider走这个pipeline

    Antwort
    0
  • StornierenAntwort