使用scrapy框架Item用法,ItemLoader

MapCompose()可出路多个函数来处理纸然后返回。举个栗子,如果要给某个字符串加上一个前缀,可以定义一个这样的方法:

from scrapy.item import Item
from scrapy。loader import ItemLoader
from scrapy import Field
from scrapy.loader.processors import MapCompose,Takefirst,Join
 
 

 

def str_convert(value):
    return 'haha_' + value

调用时

class Item(Item):
    title = Field(
        input_processor=MapCompose(str_convert),
    )

这样就会在每个title字段前面加上了haha_。

在字段中去除一些你不想要的东西,如果某个字段包含“abc”,而你不想要的话:

def  remove_smt(value):

       if "abc" in value:

                return None

      else:return value

class Item(Item): title = Field( input_processor=MapCompose(remove_smt(), )

TakeFirst:返回第一个非空的值。

实例化对象:kk=TakeFirst()

value=kk([" ",1,2,3])  返回的值是1

 

Join返回用分隔符连接后的值

proc = Join(";") 

result = proc(['', 'one', 'two', 'three'])

 结果result = ;one;two;three )

 输入处理器input_processor和输出处理器output_processor

class articleDetailItem(scrapy.Item):
    title = scrapy.Field()
    date = scrapy.Field(
        转换前是'date':'\r\n\r\n            2018/03/14 ·  '
        转换后是'date': datetime.date(2018, 3, 14),
        input_processor = MapCompose(date_convert),
        output_processor = TakeFirst()
    )
    url = scrapy.Field(
        转换前是'url': ['http://blog.jobbole.com/113771/']
        转换后是'url': 'http://blog.jobbole.com/113699/'
        output_processor = TakeFirst()
    )
 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值