Scrapy - Durchforsten mehrerer Seiten pro Element

Ich versuche, ein paar zusätzliche Seiten pro Element zu durchsuchen, um Standortinformationen abzurufen.

Am Ende des Artikels überprüfe ich vor der Rücksendung, ob zusätzliche Seiten durchsucht werden müssen, um die Informationen abzurufen. Im Wesentlichen enthalten diese Seiten einige Standortdetails und sind eine einfache Anforderung zum Abrufen.

Das heißthttp://site.com.au/MVC/Offer/GetLocationDetails/?locationId=3761&companyId=206

Der obige Link gibt entweder eine Auswahl mit mehr zu durchsuchenden Seiten zurück - oder ein dd / dt mit den Adressdetails. In beiden Fällen muss ich diese Adressinformationen extrahieren und an meinen Artikel anhängen ['Orte'].

Soweit ich habe (am Ende des Analyseblocks)

return self.fetchLocations(locations_selector, company_id, item)

locations_selector enthält eine Liste von locationIds

Dann habe ich

def fetchLocations(self, locations, company_id, item): #response):
    for location in locations:
        if len(location)>1:
            yield Request("http://site.com.au/MVC/Offer/GetLocationDetails/?locationId="+location+"&companyId="+company_id,
            callback=self.parseLocation,
                meta={'company_id': company_id, 'item': item})

Und schlussendlich

def parseLocation(self,response):
    hxs = HtmlXPathSelector(response)
    item = response.meta['item']

    dl = hxs.select("//dl")
    if len(dl)>0:
        address = hxs.select("//dl[1]/dd").extract()
        loc = {'address':remove_entities(replace_escape_chars(replace_tags(address[0], token=' '), replace_by=''))}
        yield loc

    locations_select = hxs.select("//select/option/@value").extract()
    if len(locations_select)>0:
        yield self.fetchLocations(locations_select, response.meta['company_id'], item)

Kann nicht scheinen, dieses Arbeiten zu erhalten….

Antworten auf die Frage(1)

Ihre Antwort auf die Frage