上个博客最后面写到了,pipeline的简单使用以及参数的配置含义:https://blog.csdn.net/wei18791957243/article/details/86157707

1.从pipeline的字典形式可以看出来,pipeline可以有多个,而且确实pipeline能够定义多个

2. 有多个爬虫,pipeline是怎样处理的呢?

首先创建三个爬虫 : 例如: 在一个scrapy的项目里面爬取三个网站: 今日头条、新浪、豆瓣

在cmd里面分别创建三个爬虫:

然后打开pycharm查看:

                就会看见有三个爬虫

(1)使用pipeline处理的第一个方式可以给item加上键和响应的值:

分别再相对的爬虫py里面,的parse方法里面加上相应的键和值

"""对应的toutiao.py"""
def parse(self, response):item = {}item["come_from"] = "toutiao"pass"""对应的sina.py"""
def parse(self, response):item = {}item["come_from"] = "sina"pass"""对应的douban.py"""
def parse(self, response):item = {}item["come_from"] = "douban"pass

       然后pipelines.py  在 process_item方法里面可以对值进行相应的操作,分别进行判断

class PipelinetestPipeline(object):def process_item(self, item, spider):if item["come_from"] == "toutiao":passelif item["come_from"] == "sina":passelse:passreturn item

也可以写多个类的形式进行:

class PipelinetestPipeline(object):def process_item(self, item, spider):if item["come_from"] == "toutiao":passreturn itemclass PipelinetestPipeline2(object):def process_item(self, item, spider):if item["come_from"] == "sina":passreturn itemclass PipelinetestPipeline3(object):def process_item(self, item, spider):if item["come_from"] == "douban":pass

(2) 除了给item加上键和值,还有第二方式,  spider.name 来进行判断,就不用给item加键和值

class PipelinetestPipeline(object):def process_item(self, item, spider):if spider.name == "toutiao":passelif spider.name == "sina":passelse:passreturn item

  每个爬虫的类里面都有对应的name属性,也就是对应的每个爬虫的名字,所以可以利用这个属性来进行判断

  然后在pipeline里面进行相应的处理

3.  对有多个爬虫时,pipeline通过上面的中方式进行处理,

   一种方式是给item加上键和值,一种方式是里面name属性

  分别对值或者爬虫的名字进行判断,进而对数据进行处理

Scrapy框架的学习(3.pipeline介绍以及多个爬虫的pipeline的使用)相关推荐

  1. Scrapy框架的学习(6.item介绍以及items的使用(提前定义好字段名))

    在Scrapy框架中的items.py的作用   1.可以预先定义好要爬取的字段     items.py import scrapyclass TencentItem(scrapy.Item):# ...

  2. Scrapy框架的学习(一)

    1. Scrapy概述 1. 为什么要学习scrapy框架 爬虫必备的技术,面试会问相关的知识. 让我们的爬虫更快更强大.(支持异步爬虫) 2. 什么是Scrapy? 异步爬虫框架:Scrapy是一个 ...

  3. scrapy框架菜鸟学习记录

    scrapy框架菜鸟学习记录 scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架.其可以应用在数据挖掘,信息处理或储存历史数据等一系列的程序中.其最初是为了页面抓取(更确切的说,网络抓 ...

  4. Scrapy框架的学习(2.scrapy入门,简单爬取页面,并使用管道(pipelines)保存数据)

    上个博客写了:  Scrapy的概念以及Scrapy的详细工作流程 https://blog.csdn.net/wei18791957243/article/details/86154068 1.sc ...

  5. Scrapy 框架【学习笔记01】

    Scrapy 框架 Scrapy是用纯Python实现一个为了爬取网站数据.提取结构性数据而编写的应用框架,用途非常广泛. 框架的力量,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页 ...

  6. scrapy框架基础学习之囧事百科

    基础: 一.安装scrapy框架 pip install scrapy pip --default-timeout=2000 install -U scrapy 来下载scrapy让它的延迟检测时间变 ...

  7. python爬虫--scrapy框架的学习和使用(七)⭐---第二部分

    文章目录 九.CrawlSpider⭐⭐⭐ 实战项目 问题总结 十.分布式爬虫 十一.增量式爬虫 总结 九.CrawlSpider⭐⭐⭐ 是一个类,基于Spider的子类. 子类继承父类所有的功能,并 ...

  8. python scrapy框架基如何实现多线程_【转】爬虫的一般方法、异步、并发与框架scrapy的效率比较...

    问题的由来 我们的需求为爬取红色框框内的名人(有500条记录,图片只展示了一部分)的 名字以及其介绍,关于其介绍,点击该名人的名字即可,如下图: 这就意味着我们需要爬取500个这样的页面,即500个H ...

  9. Scrapy框架的学习(5.scarpy实现翻页爬虫,以及scrapy.Request的相关参数介绍)

    1. 创建爬虫项目 : scrapy startporject tencent  然后进入到项目中: cd tencent    创建爬虫:scrapy genspider tencent_spide ...

最新文章

  1. 嵌入式系统中进程间通信的监视方法
  2. 超卖 100 瓶茅台的事故分析
  3. Push to origin/master was rejected解决方法
  4. php preg match x,PHP的preg_match噩梦
  5. 深度学习-Tensorflow2.2-Eager模式与自定义训练{4}-微分运算训练练习-16
  6. 阿里云弹性计算产品负责人:让客户用上本地化的公共云
  7. android mysql开发工具_Android开发工具--adb的使用
  8. 学习HTML的第二次课
  9. A child container failed during start 解决方案
  10. 开启6.0 sd卡读写权限_解了摄影师的燃眉之急:入手雷克沙TF卡,一卡多用速度超快...
  11. 代码审计:命令注入学习
  12. 使用readelf和objdump剖析目标文件
  13. .db文件用什么打开?如何打开.db数据库文件?
  14. 设计模式之简单工厂模式和抽象工厂模式
  15. HDU 4125 Moles 二叉排序树 树状数组 kmp
  16. 字符串和时间转换sql
  17. 网易免费企业邮箱的SMTP、POP服务地址和端口
  18. 【Transformers】第 5 章:微调文本分类的语言模型
  19. 彻底解决:fake_useragent.errors.FakeUserAgentError: Maximum amount of retries reached
  20. cas java_什么是CAS?JAVA中哪些地方用到来CAS?

热门文章

  1. 屏的像素与传输速率_柔性半导体新突破:传输速度已足够驱动OLED像素
  2. time库python_Python的time库的一些简单函数以及用法
  3. 一个小小的String问题引发的血案
  4. 可视化工具第一篇(百度Echarts)
  5. yml配置文件中有特殊字符解决方案
  6. 前端传数据到后台部分接收成功,部分接收失败
  7. NAS——在VMware 15虚拟机中安装黑群晖DSM解决方案
  8. Windows——FTP命令匿名登录解决方案
  9. Detective Book
  10. FatMouse and Cheese