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对象
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
上一篇: 一个简单的 web 服务器