1. Item Pipeline 介绍

当Item 在Spider中被收集之后,就会被传递到Item Pipeline中进行处理

每个item pipeline组件是实现了简单的方法的python类,负责接收到item并通过它执行一些行为,同时也决定此Item是否继续通过pipeline,或者被丢弃而不再进行处理

item pipeline的主要作用:

  1. 清理html数据
  2. 验证爬取的数据
  3. 去重并丢弃
  4. 讲爬取的结果保存到数据库中或文件中

2. 编写自己的item pipeline

2.1 必须实现的函数

  • process_item(self,item,spider)

每个item piple组件是一个独立的pyhton类,必须实现以process_item(self,item,spider)方法

每个item pipeline组件都需要调用该方法,这个方法必须返回一个具有数据的dict,或者item对象,或者抛出DropItem异常,被丢弃的item将不会被之后的pipeline组件所处理

2.2 可以选择实现

  • open_spider(self,spider)
    表示当spider被开启的时候调用这个方法

  • close_spider(self,spider)
    当spider关闭时候这个方法被调用

2.3 应用到项目

import jsonclass MoviePipeline(object):def process_item(self, item, spider):json.dump(dict(item), open('diban.json', 'a', encoding='utf-8'), ensure_ascii=False)return item

注意:

写到pipeline后,要在settings中设置才可生效

ITEM_PIPELINES = {'spiderdemo1.pipelines.MoviePipeline': 300
}

2.4 将项目写入MongoDB

MongoDB地址和数据库名称在Scrapy设置中指定; MongoDB集合以item类命名

from pymongo import MongoClient
from middle.settings import HOST
from middle.settings import PORT
from middle.settings import DB_NAME
from middle.settings import SHEET_NAMEclass MiddlePipeline(object):def __init__(self):client = MongoClient(host=HOST, port=PORT)my_db = client[DB_NAME]self.sheet = my_db[SHEET_NAME]def process_item(self, item, spider):self.sheet.insert(dict(item))return item

爬虫--Item Pipeline 介绍(21)相关推荐

  1. python pipeline框架_Python爬虫从入门到放弃(十六)之 Scrapy框架中Item Pipeline用法...

    原博文 2017-07-17 16:39 − 当Item 在Spider中被收集之后,就会被传递到Item Pipeline中进行处理 每个item pipeline组件是实现了简单的方法的pytho ...

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

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

  3. scrapy爬虫之item pipeline保存数据

    ##简介 前面的博文我们都是使用"-o ***.josn"参数将提取的item数据输出到json文件,若不加此参数提取到的数据则不会输出.其实当Item在Spider中被收集之后, ...

  4. python pipeline框架_爬虫(十六):Scrapy框架(三) Spider Middleware、Item Pipeline|python基础教程|python入门|python教程...

    https://www.xin3721.com/eschool/pythonxin3721/ 1. Spider Middleware Spider Middleware是介入到Scrapy的Spid ...

  5. 第45讲:哪都能存,Item Pipeline 的用法

    在前面的示例中我们已经了解了 Item Pipeline 项目管道的基本概念,本节课我们就深入详细讲解它的用法. 首先我们看看 Item Pipeline 在 Scrapy 中的架构,如图所示. 图中 ...

  6. Scrapy:Python的爬虫框架----原理介绍

    [scrapy]学习Scrapy入门 字数2820 阅读6946 评论2 喜欢12 Scrapy介绍 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 可以应用在包括数据挖掘,信息 ...

  7. 爬虫(详细介绍,由浅入深)

    网络爬虫与信息提取笔记 学习python的视频https://www.bilibili.com/video/av69060979?p=1 以爬虫视角,看待网络内容(来源:学习强国平台,北京理工大学学习 ...

  8. Python:Item Pipeline

    当Item在Spider中被收集之后,它将会被传递到Item Pipeline,这些Item Pipeline组件按定义的顺序处理Item. 每个Item Pipeline都是实现了简单方法的Pyth ...

  9. 如何用item pipeline(管道)清洗数据

    管道是什么 Item管道(Item Pipeline): 主要负责处理有蜘蛛从网页中抽取的Item,主要任务是清洗.验证和存储数据. 当页面被蜘蛛解析后,将被发送到Item管道,并经过几个特定的次序处 ...

  10. Item Pipeline

    Item Pipeline 当Item在Spider中被收集之后,它将会被传递到Item Pipeline,这些Item Pipeline组件按定义的顺序处理Item. 每个Item Pipeline ...

最新文章

  1. 在公共区块链中通过加密保护数据
  2. ceph存储原理_【理论研究】漫谈传统IT基础设施10-存储(04)
  3. kafka分区(partition)和和分组(group)
  4. cwinthread*线程指针怎么销毁结束_最新版Web服务器项目详解 01 线程同步机制封装类...
  5. 信息学奥赛C++语言:交换数值
  6. 做折线图_Excel折线图这样做,老板看了要崩溃
  7. vs2015打开慢的解决方法
  8. python工具包:Python Swiftclient
  9. 【路径规划】基于matlab多种算法无人机路径规划【含Matlab源码 1263期】
  10. 稳重大气教师说课PPT模板
  11. CMYK配色表和RGB配色表
  12. beetl html模板,Beetl模板引擎之自定义html标签
  13. ysoserial exploit/JRMPListener原理剖析
  14. vue使用prevent修饰符阻止标签的默认行为
  15. OutMan——Objective-C中分类、延展、非正式协议和协议
  16. 让WMP12成为万能播放器
  17. js获取明天的年月日和计时器
  18. 包装exp是什么意思_药瓶说明中EXP是什么意思?
  19. cs224w(图机器学习)2021冬季课程学习笔记16 Community Detection in Networks
  20. 编写一个简单的NodeBB插件

热门文章

  1. 关于H.265/HEVC视频压缩标准相较H.264/AVC节省50%左右的带宽方案的推荐
  2. 使用js脚本实现网页版微信定时发送信息
  3. 好用的远程登录服务器工具
  4. 一文看懂李录价值投资体系
  5. 服务器定时发送qq消息,python实现定时发送qq消息.pdf
  6. java kryo_在java中使用kryo框架来实现高效序列化与反序列化 | 学步园
  7. java图书商城项目_JavaWeb网上图书商城完整项目--23.注册页面之html实现
  8. 小红拿到了一个数组,她想取一些数使得取的数之和尽可能大,但要求这个和必须是 k 的倍数。你能帮帮她吗?
  9. Hadoop In Action
  10. ubuntu18设置屏幕旋转_[Android6.0][MTK6737] 设置屏幕旋转 270 度