我已经写了一个蜘蛛来爬行网页(我从这里得到了所有的帮助),它返回了具有所有必需属性的项目。 它返回一个表单字典, {“count”:24,“Gender”:“Female”,“Age”:“25-34”,“Location”:“Edinburgh”,“Name”:“abcde”}
我希望它只返回一个列表: [24,“女性”,“25-34”,“爱丁堡”,“abcde”]
然后我可以将其存储在一个文件中。 我怎么能这样做?
编辑:但我无法返回字典值。如果我使用 return item.values() 我收到错误...... Spider必须返回Request,BaseItem或None得到unicode
答案 0 :(得分:3)
我可能误解了这个要求,但如果你希望你的输出文件看起来更像列表而不是字典,那么你应该输出一个csv文件而不是一个json文件? csv feed导出使用CSVItemExporter类,并将以下列形式生成输出:
count,Gender,Age,Location,Name
24,Female,25-34,Edinburgh,abcde
应该可以通过运行以下命令来实现此目的:
scrapy crawl dmoz -o items.csv -t csv
如果您想生成没有标题的输出,那么您需要将CSVItemExporter子类化并将include_headers_line
参数设置为False,因为该参数的默认值为True。
答案 1 :(得分:1)
您只能从词典中提取值并执行您喜欢的任何操作:
>>> d = {"count": 24, "Gender": "Female ", "Age": "25-34", "Location": "Edinburgh", "Name": "abcde"}
>>>
>>> d.values()
[24, 'Female ', '25-34', 'Edinburgh', 'abcde']