>>>product['name']DesktopPC>>>product.get('name')DesktopPC>>>product['price']1000>>>product['last_updated']Traceback(mostrecentcalllast):...KeyError:'last_updated'>>>product.get('last_updated','not set')notset>>>product['lala']# getting unknown fieldTraceback(mostrecentcalllast):...KeyError:'lala'>>>product.get('lala','unknown field')'unknown field'>>>'name'inproduct# is name field populated?True>>>'last_updated'inproduct# is last_updated populated?False>>>'last_updated'inproduct.fields# is last_updated a declared field?True>>>'lala'inproduct.fields# is lala a declared field?False
设置值
1
2
3
4
5
6
7
8
9
10
11
>>>product['last_updated']='today'>>>product['last_updated']today>>>product['lala']='test'# setting unknown fieldTraceback(mostrecentcalllast):...KeyError:'Product does not support field: lala'
fromscrapy.loaderimportItemLoaderfrommyproject.itemsimportProductdefparse(self,response):l=ItemLoader(item=Product(),response=response)l.add_xpath('name','//div[@class="product_name"]')l.add_xpath('name','//div[@class="product_title"]')l.add_xpath('price','//p[@id="price"]')l.add_css('stock','p#stock]')l.add_value('last_updated','today')# you can also use literal valuesreturnl.load_item()