我正在用Scrapy來抓取列表。我的腳本首先使用parse_node
解析清單網址,然後使用parse_listing
解析每個清單,對於每個清單,使用parse_agent
解析清單代理。我想創建一個數組,當scrapy通過列表和代理進行解析時,這些數組會隨着每個新列表的重置而重新生成。創建具有多個解析的項目的Scrapy數組
這是我分析的腳本:
def parse_node(self,response,node):
yield Request('LISTING LINK',callback=self.parse_listing)
def parse_listing(self,response):
yield response.xpath('//node[@id="ListingId"]/text()').extract_first()
yield response.xpath('//node[@id="ListingTitle"]/text()').extract_first()
for agent in string.split(response.xpath('//node[@id="Agents"]/text()').extract_first() or "",'^'):
yield Request('AGENT LINK',callback=self.parse_agent)
def parse_agent(self,response):
yield response.xpath('//node[@id="AgentName"]/text()').extract_first()
yield response.xpath('//node[@id="AgentEmail"]/text()').extract_first()
我想parse_listing導致:
{
'id':123,
'title':'Amazing Listing'
}
然後parse_agent添加到列表數組:
{
'id':123,
'title':'Amazing Listing'
'agent':[
{
'name':'jon doe',
'email:'[email protected]'
},
{
'name':'jane doe',
'email:'[email protected]'
}
]
}
怎麼辦我從每個級別獲得結果並建立一個數組?