Scrapy CrawlSpider повторить очистку
Для страницы, которую я пытаюсь очистить, я иногда получаю в своем ответе страницу-заполнитель, которая содержит некоторый JavaScript, который автоматически перезагружается, пока не получит настоящую страницу. Я могу определить, когда это происходит, и хочу повторить загрузку и очистку страницы. Логика, которую я использую в своем CrawlSpider, выглядит примерно так:
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
Однако, похоже, что когда вызывается логика повторных попыток и выдается новый запрос, страницы и содержащиеся в них ссылки не сканируются и не удаляются. Я думал, что с помощьюself.parse
который CrawlSpider использует для применения правил сканирования иdont_filter=True
Я мог бы избежать дубликата фильтра. Однако сDUPEFILTER_DEBUG = True
Я вижу, что повторные запросы отфильтровываются.
Я что-то упустил или есть лучший способ справиться с этим? Я хотел бы избежать осложнений при выполнении динамического рендеринга js с использованием чего-то вроде всплеска, если это возможно, и это происходит только периодически.