2013-01-03 54 views
1

我写过一个蜘蛛来抓取网页(我从这里获得的所有帮助),并返回具有所有必需属性的项目。 它返回一个形式的字典, {“count”:24,“性别”:“女性”,“年龄”:“25-34”,“位置”:“爱丁堡”,“名称”:“abcde” }Scrapy返回除了项目以外的其他数据

,我想这回只喜欢一个列表: [24,“女”,“25-34”,“爱丁堡”,“ABCDE”]

,我可以再存储在一个文件。 我该怎么做?

编辑:但我无法返回字典值。如果我使用 回报item.values() 我得到的错误... 蜘蛛必须返回请求,BaseItem或无有统一

回答

3

我可能误解了要求,但如果你希望你的输出文件看起来更像一本字典的列表,那么也许你应该输出一个CSV文件,而不是一个JSON文件?该CSV饲料出口使用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。

+0

非常感谢。正是我在找什么 –

1

您可以从字典中只提取的价值观和做任何你想:

>>> d = {"count": 24, "Gender": "Female ", "Age": "25-34", "Location": "Edinburgh", "Name": "abcde"} 
>>> 
>>> d.values() 
[24, 'Female ', '25-34', 'Edinburgh', 'abcde'] 
+0

但我无法返回字典值。如果我使用return item.values(),我得到错误... Spider必须返回Request,BaseItem或None。 –

+1

那么,当你在返回后得到结果时,为什么不提取这些值呢? – sahhhm

+0

scrapy抓取dmoz -o items.json -t json - 这是我用来在.json文件中将多个结果一起写入的命令。我如何编辑这个只写入值。 –

相关问题