爬虫--Item Pipeline 介绍(21)
1. Item Pipeline 介绍
当Item 在Spider中被收集之后,就会被传递到Item Pipeline中进行处理
每个item pipeline组件是实现了简单的方法的python类,负责接收到item并通过它执行一些行为,同时也决定此Item是否继续通过pipeline,或者被丢弃而不再进行处理
item pipeline的主要作用:
- 清理html数据
- 验证爬取的数据
- 去重并丢弃
- 讲爬取的结果保存到数据库中或文件中
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)相关推荐
- python pipeline框架_Python爬虫从入门到放弃(十六)之 Scrapy框架中Item Pipeline用法...
原博文 2017-07-17 16:39 − 当Item 在Spider中被收集之后,就会被传递到Item Pipeline中进行处理 每个item pipeline组件是实现了简单的方法的pytho ...
- Scrapy框架的学习(3.pipeline介绍以及多个爬虫的pipeline的使用)
上个博客最后面写到了,pipeline的简单使用以及参数的配置含义:https://blog.csdn.net/wei18791957243/article/details/86157707 1.从p ...
- scrapy爬虫之item pipeline保存数据
##简介 前面的博文我们都是使用"-o ***.josn"参数将提取的item数据输出到json文件,若不加此参数提取到的数据则不会输出.其实当Item在Spider中被收集之后, ...
- python pipeline框架_爬虫(十六):Scrapy框架(三) Spider Middleware、Item Pipeline|python基础教程|python入门|python教程...
https://www.xin3721.com/eschool/pythonxin3721/ 1. Spider Middleware Spider Middleware是介入到Scrapy的Spid ...
- 第45讲:哪都能存,Item Pipeline 的用法
在前面的示例中我们已经了解了 Item Pipeline 项目管道的基本概念,本节课我们就深入详细讲解它的用法. 首先我们看看 Item Pipeline 在 Scrapy 中的架构,如图所示. 图中 ...
- Scrapy:Python的爬虫框架----原理介绍
[scrapy]学习Scrapy入门 字数2820 阅读6946 评论2 喜欢12 Scrapy介绍 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 可以应用在包括数据挖掘,信息 ...
- 爬虫(详细介绍,由浅入深)
网络爬虫与信息提取笔记 学习python的视频https://www.bilibili.com/video/av69060979?p=1 以爬虫视角,看待网络内容(来源:学习强国平台,北京理工大学学习 ...
- Python:Item Pipeline
当Item在Spider中被收集之后,它将会被传递到Item Pipeline,这些Item Pipeline组件按定义的顺序处理Item. 每个Item Pipeline都是实现了简单方法的Pyth ...
- 如何用item pipeline(管道)清洗数据
管道是什么 Item管道(Item Pipeline): 主要负责处理有蜘蛛从网页中抽取的Item,主要任务是清洗.验证和存储数据. 当页面被蜘蛛解析后,将被发送到Item管道,并经过几个特定的次序处 ...
- Item Pipeline
Item Pipeline 当Item在Spider中被收集之后,它将会被传递到Item Pipeline,这些Item Pipeline组件按定义的顺序处理Item. 每个Item Pipeline ...
最新文章
- 在公共区块链中通过加密保护数据
- ceph存储原理_【理论研究】漫谈传统IT基础设施10-存储(04)
- kafka分区(partition)和和分组(group)
- cwinthread*线程指针怎么销毁结束_最新版Web服务器项目详解 01 线程同步机制封装类...
- 信息学奥赛C++语言:交换数值
- 做折线图_Excel折线图这样做,老板看了要崩溃
- vs2015打开慢的解决方法
- python工具包:Python Swiftclient
- 【路径规划】基于matlab多种算法无人机路径规划【含Matlab源码 1263期】
- 稳重大气教师说课PPT模板
- CMYK配色表和RGB配色表
- beetl html模板,Beetl模板引擎之自定义html标签
- ysoserial exploit/JRMPListener原理剖析
- vue使用prevent修饰符阻止标签的默认行为
- OutMan——Objective-C中分类、延展、非正式协议和协议
- 让WMP12成为万能播放器
- js获取明天的年月日和计时器
- 包装exp是什么意思_药瓶说明中EXP是什么意思?
- cs224w(图机器学习)2021冬季课程学习笔记16 Community Detection in Networks
- 编写一个简单的NodeBB插件
热门文章
- 关于H.265/HEVC视频压缩标准相较H.264/AVC节省50%左右的带宽方案的推荐
- 使用js脚本实现网页版微信定时发送信息
- 好用的远程登录服务器工具
- 一文看懂李录价值投资体系
- 服务器定时发送qq消息,python实现定时发送qq消息.pdf
- java kryo_在java中使用kryo框架来实现高效序列化与反序列化 | 学步园
- java图书商城项目_JavaWeb网上图书商城完整项目--23.注册页面之html实现
- 小红拿到了一个数组,她想取一些数使得取的数之和尽可能大,但要求这个和必须是 k 的倍数。你能帮帮她吗?
- Hadoop In Action
- ubuntu18设置屏幕旋转_[Android6.0][MTK6737] 设置屏幕旋转 270 度