SCRAPY_part6_Item Pipeline

本文介绍Scrapy框架中的ItemPipeline机制,包括其工作原理、常见用途及实现方法。ItemPipeline用于处理爬虫抓取到的数据,如清洗HTML、验证数据完整性等。
  • 当 Item 被爬取后,它会被传送到 Item Pipeline,并被其中的组件按顺序进行处理。每一个 Item pipeline 组件都是一个 python 类,调用一些简单的方法。它们可以接收一个 item并对其进行操作,决定这个 item 是否继续通过 pipeline 还是被丢弃。
  • pipeline 的典型用法有:

    1. 清洗 HTML 数据
    2. 验证爬取的数据(检查 item 是否包含特定的 field)
    3. 查重;
    4. 对爬取数据进行排序
  • 每一个 item pipeline 组件都是一个 python 类,有以下方法:

    1. process_item(self,item,spider)(必须)
      这个方法被每个 item pipeline 组件调用,并且必须返回:或是一个含有数据的字典,或是一个 Item 对象,或是一个 Twisted Deffered 或引发 DropItem 异常.被丢弃的数据不会在pipeline 中继续进行处理。
      参数:item(Item 类或者字典)—爬取的 item;
      spider(Spider 对象)—获取数据的 spider组件
    2. open_spider(self,spider)
      当 spider 开始爬取时调用此方法。
      参数:spider(Spider 对象)—开始爬取的 spider
    3. close_spider(self, spider)
      当 spider 结束时调用此方法。
      参数:spider(Spider 对象)—结束爬取的 spider
    4. from_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,此值决定其运行顺序,值越小,优先级越高。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值