如果想用scrapy对一各信息网站进行抓取,比如说一各房地产网站,他的结构是这样的:
首先进入它的小区列表--community list,然后抓取小区详细信息的页面url--community detail,
这时我进入小区的详细页面,它除了能够抓取一些小区基本的信息外,还可以得到这个小区正在出售的二手房列表和正在出租的租房列表(如果有的化),那我又可以跟着url抓取二手房信息和租房信息,我的问题是,我想在我的数据存储中构造出如下的数据结构:
{
community:{
name:...,
adress:...,
sale_hourses:{
hourse1:{
},
houese2:{
}
}
}
}
为此,我构造了这样的item:
class CommunityItem(scrapy.Item):
name = scrapy.Field()
.
.
.
class HouseItem(scrapy.Item):
name = scrapy.Field()
community = scrapy.Field(serializer=CommunityItem)
.
.
.
我的问题是,我应该在什么时候yield item?是在parse_community的时候,还是将community作为request的meta,传导到parse_houses的时候一起yield item,再或是两个地方都可以?