Scrapy ItemPipeline的使用

Scrapy_ItemPipeline的使用

image-20220628223103790

数据在Spider中被收集之后,可以传递Item Pipeline中统一进行处理

1 特点

每个item pipeline就是一个普通的python类,包含的方法名如下:

方法名含义是否必须实现
process_item(self,item,spider)用于处理接收到的item
open_spider(self,spider)表示当spider被开启的时候调用这个方法
close_spider(self,spider)当spider关闭时候这个方法被调用

2 功能

  1. 接收item

    process_item方法中保存

  2. 是否要保存数据

    取决于是否编写代码用于保存数据

  3. 决定此Item是否进入下一个pipeline

    • return item 数据进入下一个pipeline
    • drop item 抛弃数据

3 案例代码

class SaveFilePipeline:
  def open_spider(self,spider):
    self.file = open('douban5.txt','w')
  def process_item(self, item, spider):
    self.file.write(f'name:{item.get("name")}  score:{item.get("score")}\n')
  def close_spider(self,spider):
    self.file.close()

from scrapy.exceptions import DropItem
class XSPipeline:
  def open_spider(self,spider):
    self.file = open('xs.txt','w',encoding='utf-8')


  def process_item(self, item, spider):
    if item.get('title'):
      self.file.write(item.get('title'))
      self.file.write('\n')
      return item
    else:
      raise DropItem(f"Missing title in {item}")
  
  def close_spider(self,spider):
    self.file.close()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

留不住的人

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

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

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

打赏作者

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

抵扣说明:

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

余额充值