Item Pipeline(项目管道)。Spider解析完Response就会产生Item,Item就会被Engine传递到Item Pipeline,被定义的Item Pipeline组件就会顺次被调用,完成一连串的处理过程:
- 清洗HTML数据
- 验证爬取数据,检查爬取字段
- 查重并丢弃重复内容
- 将爬取结果存储到数据库中
核心方法
必须实现的方法:
- process_item(item, spider)
可选实现的方法:
- open_spider(spider)
- close_spider(spider)
- from_crawler(cls, crawler)
- process_item(item, spider)
被定义的Item Pipeline会默认调用这个方法对Item进行处理,比如进行数据处理或者将数据写入数据库等操作。
参数:
- item:Item对象,即被处理的Item
- spider:Spider对象,即生成该Item的Spider
返回值:Item对象/抛出DropItem异常
不同返回值的效果:
- Item对象——接着调用低优先级的Item Pipeline的process_item方法,直到所有方法被调用完毕
- 抛出DropItem异常——Item会被丢弃,不再进行处理