W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
如前一節(jié)所述,可以在項目加載器定義中聲明輸入和輸出處理器,并且用這種方式聲明輸入處理器是非常常見的。但是,還有一個地方可以指定要使用的輸入和輸出處理器:在 Item Field 元數(shù)據(jù)。下面是一個例子:
import scrapy
from itemloaders.processors import Join, MapCompose, TakeFirst
from w3lib.html import remove_tags
def filter_price(value):
if value.isdigit():
return value
class Product(scrapy.Item):
name = scrapy.Field(
input_processor=MapCompose(remove_tags),
output_processor=Join(),
)
price = scrapy.Field(
input_processor=MapCompose(remove_tags, filter_price),
output_processor=TakeFirst(),
)
>>> from scrapy.loader import ItemLoader
>>> il = ItemLoader(item=Product())
>>> il.add_value('name', ['Welcome to my', '<strong>website</strong>'])
>>> il.add_value('price', ['€', '<span>1000</span>'])
>>> il.load_item()
{'name': 'Welcome to my website', 'price': '1000'}
輸入和輸出處理器的優(yōu)先順序如下:
field_in
? 和 ?field_out
? (最優(yōu)先)input_processor
? 和 ?output_processor
? 關(guān)鍵)ItemLoader.default_input_processor()
? 和 ?ItemLoader.default_output_processor()
? (最低優(yōu)先級)Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: