关于 scrapy 的 pipeline 和 items 问题

能不能实现这种:

  1. aItem的数据由aPipeline处理

  2. bItem的数据由bPipeline处理

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

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

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

你可以在 pipeline 里判断是哪个爬虫的结果:

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

对于这种多个爬虫在一个工程里的,需要不同爬虫在 pipeline 里使用不同逻辑的问题 scrapy 的作者是这么解释的。
去看看

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

发表评论

电子邮件地址不会被公开。 必填项已用*标注