python - 关于 scrapy 的 pipeline 和 items 问题
PHP中文网
PHP中文网 2017-04-18 09:49:55
[Python讨论组]

能不能实现这种:

  1. aItem的数据由aPipeline处理

  2. bItem的数据由bPipeline处理

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(3)
天蓬老师

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

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

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

天蓬老师

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

PHP中文网

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号