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

当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对象

扫描二维码关注公众号,回复: 2654986 查看本文章

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

猜你喜欢

转载自blog.csdn.net/dhaiuda/article/details/81529759