scrapyItemPipeline

24 篇文章 1 订阅
13 篇文章 1 订阅

scrapy框架-ItemPipeline

调用时间: 当Item在Spider中被收集之后,它将会被传递到Item Pipeline,一些组件会按照一定的顺序执行对Item的处理。

功能:

  • 清理HTML数据
  • 验证爬取的数据(检查item包含某些字段)
  • 查重(并丢弃)
  • 将爬取结果保存到数据库中

一、一个自己的Pipeline类

必须实现以下方法

  • process_item(self, item**,** spider**)**

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

    • 参数:

      • itemItem 对象或者一个dict) – 被爬取的item
      • spider (Spider 对象) – 爬取该item的spider
  • open_spider(self, spider)

    当spider被开启时,这个方法被调用。参数:spider (Spider对象) – 被开启的spider

  • from_crawler(cls,crawler)

    如果存在,则调用该类方法以从中创建管道实例Crawler。它必须返回管道的新实例。搜寻器对象提供对所有Scrapy核心组件(如设置和信号)的访问;这是管道访问它们并将其功能挂钩到Scrapy中的一种方法。

  • close_spider(self, spider)

    当spider被关闭时,这个方法被调用参数:spider (Spider对象) – 被关闭的spider

二、启用一个Item Pipeline组件

为了启用一个Item Pipeline组件,你必须将它的类添加到 ITEM_PIPELINES 配置,就像下面这个例子:

ITEM_PIPELINES = {
    'myproject.pipelines.PricePipeline': 300,
    'myproject.pipelines.JsonWriterPipeline': 800,
}

分配给每个类的整型值,确定了他们运行的顺序,item按数字从低到高的顺序,通过pipeline,通常将这些数字定义在0-1000范围内。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卑微小钟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值