Scrapy CrawlSpider erneut versuchen, scrape

Für eine Seite, die ich zu kratzen versuche, erhalte ich in meiner Antwort manchmal eine "Platzhalterseite", die JavaScript enthält, das automatisch geladen wird, bis die richtige Seite angezeigt wird. Ich kann erkennen, wann dies passiert, und möchte erneut versuchen, die Seite herunterzuladen und zu scrappen. Die Logik, die ich in meinem CrawlSpider verwende, sieht ungefähr so aus:

def parse_page(self, response):
    url = response.url

    # Check to make sure the page is loaded
    if 'var PageIsLoaded = false;' in response.body:
        self.logger.warning('parse_page encountered an incomplete rendering of {}'.format(url))
        yield Request(url, self.parse, dont_filter=True)
        return

    ...
    # Normal parsing logic

Es sieht jedoch so aus, als ob die Wiederholungslogik aufgerufen und eine neue Anforderung ausgegeben wird. Die Seiten und die darin enthaltenen Links werden nicht gecrawlt oder gestrichen. Mein Gedanke war, dass mitself.parse, mit dem der CrawlSpider die Durchforstungsregeln anwendet, unddont_filter=True, Ich könnte den Duplikatfilter umgehen. Jedoch mitDUPEFILTER_DEBUG = True, Ich kann sehen, dass die Wiederholungsanforderungen weggefiltert werden.

Mir fehlt mir etwas, oder gibt es eine bessere Möglichkeit, damit umzugehen? Ich möchte die Schwierigkeit vermeiden, dynamisches JS-Rendering mit so etwas wie Splash durchzuführen, wenn dies möglich ist, und dies geschieht nur zeitweise.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage