Mar*_*oli 17 python scrapy web-scraping python-2.7
我正在使用scrapy 0.20.
我想使用项目加载器
这是我的代码:
l = XPathItemLoader(item=MyItemClass(), response=response)
l.add_value('url', response.url)
l.add_xpath('title',"my xpath")
l.add_xpath('developer', "my xpath")
return l.load_item()
Run Code Online (Sandbox Code Playgroud)
我在json文件中得到了结果.这url是一个清单.这title是一个清单.这developer是一个清单.
如何提取单个值而不是列表?
我应该为此制作项目管道吗?我希望有更快的方法
ale*_*cxe 31
您需要设置输入或输出处理器.TakeFirst在你的情况下将完美地工作.
您可以在多个位置定义它,例如在Item定义中:
from scrapy.item import Item, Field
from scrapy.loader.processors import TakeFirst
class MyItem(Item):
url = Field(output_processor=TakeFirst())
title = Field(output_processor=TakeFirst())
developer = Field(output_processor=TakeFirst())
Run Code Online (Sandbox Code Playgroud)
或者,default_output_processor在XpathItemLoader()实例上设置:
l.default_output_processor = TakeFirst()
Run Code Online (Sandbox Code Playgroud)