如何构造 scrapy item 级联抓取

新手上路,请多包涵

如果想用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,再或是两个地方都可以?

阅读 1.3k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进