SCRAPY_part6_Item Pipeline
来源:互联网 发布:淘宝上换购是什么意思 编辑:程序博客网 时间:2024/06/09 16:02
- 当 Item 被爬取后,它会被传送到 Item Pipeline,并被其中的组件按顺序进行处理。每一个 Item pipeline 组件都是一个 python 类,调用一些简单的方法。它们可以接收一个 item并对其进行操作,决定这个 item 是否继续通过 pipeline 还是被丢弃。
pipeline 的典型用法有:
- 清洗 HTML 数据
- 验证爬取的数据(检查 item 是否包含特定的 field)
- 查重;
- 对爬取数据进行排序
每一个 item pipeline 组件都是一个 python 类,有以下方法:
process_item(self,item,spider)
(必须)
这个方法被每个 item pipeline 组件调用,并且必须返回:或是一个含有数据的字典,或是一个 Item 对象,或是一个 Twisted Deffered 或引发 DropItem 异常.被丢弃的数据不会在pipeline 中继续进行处理。
参数:item(Item 类或者字典)—爬取的 item;
spider(Spider 对象)—获取数据的 spider组件open_spider(self,spider)
当 spider 开始爬取时调用此方法。
参数:spider(Spider 对象)—开始爬取的 spiderclose_spider(self, spider)
当 spider 结束时调用此方法。
参数:spider(Spider 对象)—结束爬取的 spiderfrom_crawler(cls,crawler)
此类方法被调用时从 Crawler 类 创建一个 pipeline 实例,它必须返回一个新的 pipeline 实例。Crawler 对象提供了访问和 hook 所有 Scrapy 核心组件(如 settings 和 signals)的方式。
参数:crawler(Crawler 对象)—使用 pipeline 的 crawler
启用一个 Item Pipeline 组件
功 能 : 要 启 用 一 个 item pipeline 组 件 , 你必 须 将 其 类 名 添加 到 settings 中的ITEM_PIPELINES 变量中:
ITEM_PIPELINES = { 'myproject.pipelines.PricePipeline': 300, 'myproject.pipelines.JsonWriterPipeline': 800,}
你必须为相应的类设定一个整数值,整数值的范围为 0-1000,此值决定其运行顺序,值越小,优先级越高。
阅读全文