scrapy--Itemloader数据清洗--input_processor和output_processor比较

本文详细介绍了Scrapy中的ItemLoader数据清洗,包括Input Processor和Output Processor的用法。重点讨论了TakeFirst、MapCompose、Compose、Identity、SelectJmes等处理器,并通过实例解释了它们在数据收集过程中的作用。同时,文章还阐述了Input Processor和Output Processor的区别,以及它们在Item Field填充和Item实例返回过程中的应用。此外,还提到了处理器的优先级规则,如name_out、Field()中定义的规则以及默认的TakeFirst()处理器。
摘要由CSDN通过智能技术生成

processor

scrapy提供了一个processors类,里面有下列几种方法:Join,TakeFirst,MapCompose,Compose,Identity,SelectJmes

对这几种方法的用法简单介绍一下:

from scrapy.loader.processors import Join,TakeFirst,MapCompose,Compose,Identity,SelectJmes

#以特定字符连接,示例以空连接,对字符串也能操作
c = Join('')
c(['a','b'])
>>>'ab'
#********************

#传入函数的列表的每一个元素都会经过第一个函数,
#得到值在经过第二个函数,如果有返回值为None的,则抛弃,
#最后返回一个列表
c=MapCompose(str.strip,str.upper)
c(['  a   ','b'])
>>>['A', 'B']
#********************

#如果传入一个列表时则会报下面这个错误
#descriptor 'strip' requires a 'str' object but received a 'list'
#但如果Compose的第一个函数是取列表的第一个元素,不会报错
#即Compose是处理单一数据,MapCompose是批量处理
c=Compose(str.strip,str.upper)
c('  ac   ')
>>>'AC'
#********************

#拿到JSON格式数据时会有作用
proc = SelectJmes('a') 
proc({'a
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值