欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python爬虫笔记(十一)——Scrapy官方文档阅读——Item Pipeline

程序员文章站 2022-05-08 22:52:14
...

当item被spider返回后,会被送往Item Pipeline进行处理,一般在Item pipeline中会进行下列动作:

1、清洗HTML数据

2、验证爬取的数据是否正确(通过查看是否有具有标志性的标志)

3、检查是否重复

4、存储item

 

扮演item pipeline角色的每个python类需要实现以下方法:

process_item(self,item,spider):scrapy会调用item pipeline的实现类中的该方法,process_item()必须返回下列对象中的一个:

包含数据的字典、item对象、返回Twisted Deferred,或是发起DropItem(丢弃Item)的异常

spider参数:爬虫对象

item:爬取的item对象

 

item pipeline的实现类也可以实现下列方法:

1、open_spider(self,spider):当spider被打开(开始执行)后调用

spider参数(Spider对象):打开的spider

 

2、close_spider(self,spider):当spider被关闭(执行完毕)后调用

spider参数(Spider对象):关闭的spider

 

3、from_crawler(cls,crawler):从Crawler对象中实例化一个item pipeline实现类的对象并返回

crawler参数(Crawler对象)

cls表示类本身

相应的使用例子请查看:https://doc.scrapy.org/en/latest/topics/item-pipeline.html

 

为了使用定义好的Pipeline,必须把class添加到ITEM_PIPELINES设置:

ITEM_PIPELINES = {
    'myproject.pipelines.PricePipeline': 300,
    'myproject.pipelines.JsonWriterPipeline': 800,
}

数字表示优先级,越小优先级越大,一般这个整数的范围为0—1000