Ich bin scraping Auflistungen mit Scrapy. Mein Skript analysiert zunächst die Listen-URLs mit parse_node
. Anschließend analysiert es jeden Eintrag unter Verwendung von parse_listing
. Für jeden Eintrag analysiert er die Agenten für den Eintrag unter Verwendung von parse_agent
. Ich möchte ein Array erstellen, das sich als Scrapy-Parser durch die Listings und die Agenten für die Listings aufbaut und für jeden neuen Listing zurücksetzt.Erstellen Scrapy Array von Elementen mit mehreren Parse
Hier ist meine Analyse Skript:
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()
Ich möchte in parse_listing führen:
{
'id':123,
'title':'Amazing Listing'
}
dann auf die Kotierung Array hinzufügen parse_agent:
{
'id':123,
'title':'Amazing Listing'
'agent':[
{
'name':'jon doe',
'email:'[email protected]'
},
{
'name':'jane doe',
'email:'[email protected]'
}
]
}
Wie Ich bekomme die Ergebnisse von jedem Level und baue ein Array auf?