Scrapy中的ItemPipeline

(一)ItemPipeline作用

  • 清理html数据
  • 验证爬取数据,检查爬取字段
  • 查重并丢弃重复内容
  • 将爬取结果存储到数据库

(二)核心方法

  • process_item(item,spider)
  • open_spider(spider)
  • close_spider(spider)
  • from_crawler(cls,crawler)

1. process_item(item,spider)

  • item:Item对象,即被处理的Item
  • spider: 是spider对象,即生成该item的spider对象

必须要实现的方法,被定义的ItemPipeline会默认调用这个方法对Item进行处理。
必须返回一个Item或者Dropitem异常

  • 返回Item:
    此Item会被更低优先级的ItemPipeline对象的process_item方法继续处理,直到所有的方法调用完毕
  • 抛出Dropitem异常:
    此Item会被丢弃,不再进行处理

2.open_spider(self,spider)

在spider开启时自动调用此方法,做一些初始化操作。比如创建数据库连接

3.close_spider(self,spider)

Spider关闭时自动调用,完成一些收尾工作,比如关闭数据库连接。

4.from_crawler(cls,crawler)

一个类方法,用@classmethod标识,是一种依赖注入的方式。它的参数是crawler,通过crawler对象,我们可以拿到Scrapy的所有核心组件,如全局的配置信息,然后创建一个pipeline实例。参数cls就是一个class,返回一个class的实例

你可能感兴趣的:(Scrapy)