我創建了一個新的蜘蛛來抓取網站。 這種履帶獲得網站清單當然每個視頻遊戲,併爲它創建一個對象:Scrapy動態創建對象+ json導出
class gameInfos(Item):
title = Field()
desc = Field()
kind = Field()
每場比賽,本網站包含的經銷商變量列表。我得到的每一個經銷商在對象:
class buyInfos(Item):
name = Field()
address = Field()
price = Field()
現在,我的問題:
我希望把buyInfos
對象(S)內gameInfos
對象和我的JSON文件如下:
[
{
"title": "BF3",
"desc": "a beautiful game",
"kind" : "FPS",
"buy" :
[
{name : "cdiscount", "address" : "example", "price" : "45 €"},
{name : "amazon", "address" : "example amazon", "price" : "40 €"},
//... other resellers
]
},
{
"title": "COD 42",
"desc": "a game",
"kind" : "FPS",
"buy" :
},
//... other games
]
所以我試圖在我的主要對象中創建一個對象。它的工作,但最後,我只有一個對象來填充,而我想在我的主要對象內創建一些對象。
感謝您的幫助
感謝您的回答,但我有一個問題。 我創建了「ListField」,就像你我在主對象中添加了一個字段「infos = ListField()」。
然後,在我的蜘蛛:我創建我的主要對象(game_info = GameInfo())和我的子對象。
後,我嘗試:
game_info.append(new_buy_info)
但錯誤傳來=>
'game_info.append(子對象) 文件「/usr/lib/python2.7/site-packages/scrapy/ item.py「,第64行,在__getattr__ raise AttributeError(name) exceptions.AttributeError:append' – user2240632 2013-04-22 13:59:32
@ user2240632對不起固定示例 – dm03514 2013-04-22 14:01:49
我得到一個錯誤:'File」/root/mycrawler/mycrawler/spiders/jiwire.py 「,第107行,在parse_hotspot game_info [」buys「]。append(」test「) 文件」/usr/lib/python2.7/site-packages/scrapy/item。py「,第49行,在__getitem__ return self._values [key] exceptions.KeyError:'buys'' – user2240632 2013-04-22 16:09:52