我创建了一个新的爬虫来抓取一个网站。这个爬虫在网站上获取liste的每个视频游戏,并为它创建一个对象:
class gameInfos(Item):
title = Field()
desc = Field()
kind = Field()对于每个游戏,该网站都包含一个可变的经销商列表。我在object中获取每个分销商:
class buyInfos(Item):
name = Field()
address = Field()
price = Field()现在,我的问题是:
我希望将buyInfos对象放入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
]所以我尝试在我的主对象中创建一个对象。它可以工作,但最后,我只有一个对象要填充,而我想在我的主对象中创建一些对象。
谢谢你的帮忙
发布于 2013-04-23 00:56:00
解决方案很简单。将对象创建为:
class GameInfo(Item):
title = Field()
desc = Field()
kind = Field()
listeBuys = Field()然后,在您的爬行器中,实例GameInfo:
gameInfo = GameInfo()然后,为所需字段实例化python列表:
gameInfo['listeBuys'] = []最后,根据需要添加:
gameInfo['listeBuys'].append(asyouwant)感谢dm03514的帮助!
发布于 2013-04-22 21:24:54
Scrapy Field类是Scrapy的子类。如果您想让其中一个字段能够包含Item列表,我相信您可以创建一个列表字段。
class ListField(list):
pass
class GameInfo(Item):
title = Field()
desc = Field()
kind = Field()
buys = ListField()现在,您可以在爬行器中创建gameInfos,它将能够包含所有相关的buyInfos
game_info = GameInfo()
# create your buy info and append to game info
game_info['buys'].append(new_buy_info)https://stackoverflow.com/questions/16147839
复制相似问题