Ich baue einen Schaber, um verschiedene Links mit scrapy zu kratzen. Scrapy kratzt die Links von der ersten Seite. Obwohl GET
Anfragen von verschiedenen URLs sind, ist response.url immer die gleiche, die bewirkt, dass die gleiche Seite geschabt wird. Ich glaube nicht, dass es irgendwelche Umleitungen gibt, weil Links nicht in normalen Browsern umgeleitet werden. Ich habe auch eine zufällige DELAY_INTERVAL
sowie rotierende Benutzer-Agenten mit this festgelegt. Hier ist meine Analyse Funktion:Scrapy kratzt Start-Seite trotz anderer Anfrage erhalten URL
def parse(self,response):
scraped_data = response.xpath("*//h3/a/@href").extract()
if self.urls is not None: #urls has all the different links to be crawled.
yield scrapy.Request(urls[self.k],callback=self.parse,dont_filter=True)
self.k = self.k + 1
else:
yield self.logger.info("next page unavailable|LIMIT REACHED")
Wie komme ich über diese doppelte Kratzen?
Können Sie mehr von Ihrem Spider-Code und einige Protokolle (mit LOG_LEVEL = 'DEBUG'), die doppelte URLs abrufen, bereitstellen? Sie können auch eine Anweisung 'self.logger.debug (urls [self.k]) 'vor' yield scrapy.Request 'hinzufügen, um sicherzugehen, dass Sie tatsächlich die gewünschten Anfragen in die Warteschlange stellen. –