如何用item pipeline(管道)清洗数据

本文介绍了Scrapy的Item Pipeline,用于清洗、验证和存储数据。内容包括Pipeline的定义、作用、组件方法以及如何实现价格转换、去重和数据存储的功能。通过示例代码展示了PricePipeline、DuplicatesPipeline和MongoDBPipeline的实现过程。
摘要由CSDN通过智能技术生成

管道是什么
Item管道(Item Pipeline):
主要负责处理有蜘蛛从网页中抽取的Item,主要任务是清洗、验证和存储数据。
当页面被蜘蛛解析后,将被发送到Item管道,并经过几个特定的次序处理数据。
每个Item管道的组件都是有一个简单的方法组成的Python类。
它们获取了Item并执行它们的方法,同时还需要确定是否需要在Item管道中继续执行下一步或是直接丢弃掉不处理。
类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
管道的作用
清理HTML数据
验证抓取的数据(检查项目是否包含特定字段)
检查重复(并删除) 
考虑到性能的原因,去重最好在链接中去重,或者利用数据库主键的唯一性去重
将刮取的项目存储在数据库中
接着上文《如何使用scrapy的item来封装数据》,我现在需要实现额外的三个处理——将价格的单位英镑转换为人民币、去除掉书名相同的重复数据、将数据存入MongoDB中。

如何实现Item Pipeline
一个Item Pipeline不需要继承特定基类,只需要实现某些特定方法,如process_item、open_spider、close_spider等。

process_item(item , spider):

每个 Item Pipeline 组件都需要调用该方法,这个方法必须返回一个 Item (或任何继承类)对象, 或是抛出 DropItem 异常,被丢弃的 item 将不会被之后的 pipeline 组件所处理 

需要传入的参数为: 


item (Item 对象) : 被爬取的 item
spider (Sp

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值