Raspagem de repetição de aranha

Para uma página que estou tentando raspar, às vezes recebo uma página de "espaço reservado" na minha resposta que contém algum javascript que é carregado automaticamente até que ela chegue à página real. Posso detectar quando isso acontece e quero tentar novamente o download e a raspagem da página. A lógica que eu uso no meu CrawlSpider é algo como:

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

No entanto, parece que quando a lógica de nova tentativa é chamada e uma nova solicitação é emitida, as páginas e os links que elas contêm não são rastreados ou raspados. Meu pensamento era que, usandoself.parse que o CrawlSpider usa para aplicar as regras de rastreamento edont_filter=True, Eu poderia evitar o filtro duplicado. No entanto, comDUPEFILTER_DEBUG = True, Posso ver que as solicitações de nova tentativa são filtradas.

Estou faltando alguma coisa ou existe uma maneira melhor de lidar com isso? Gostaria de evitar a complicação de fazer renderização js dinâmica usando algo como splash, se possível, e isso só acontece de forma intermitente.

questionAnswers(1)

yourAnswerToTheQuestion