2013-01-03 87 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文件中將多個結果一起寫入的命令。我如何編輯這個只寫入值。 –

相關問題