Нам нужно иметь возможность пересканировать исторические данные. Представьте себе сегодня, 23 июня. Мы просматриваем веб-сайт сегодня, но через несколько дней мы понимаем, что нам нужно пересканировать его, «увидев» его точно так же, как и 23-го. Это означает, что все возможные переадресации, запросы GET и POST и т. Д. ВСЕ страницы, которые видит паук, должны быть точно такими же, как на 23-м, несмотря ни на что.Постоянный кеш скрининга
Сценарий использования: при изменении веб-сайта, и наш паук не может что-то сканировать, мы хотим иметь возможность вернуться в прошлое и снова запустить паук после того, как мы его исправим.
Как правило, это должно быть довольно легко - подкласс кэш стандартного Scrapy, в силе его использовать даты для вложенных папок и иметь что-то вроде этого:
cache/spider_name/2015-06-23/HERE ARE THE CACHED DIRS
но когда я экспериментировал с этим, я понял, иногда паук сканирует сайт в прямом эфире. Это означает, что не хватает некоторых страниц из кеша (хотя соответствующие файлы существуют на диске), но вместо этого они берут их с живого веб-сайта. Это случилось со страницами с капчами, в частности, но, возможно, с некоторыми другими.
Как мы можем заставить Scrapy до всегда взять страницу из кеша, не попав на сайт в прямом эфире? В идеале, он должен работать даже без подключения к Интернету.
Update: мы использовали простейшую политику и HTTPCACHE_EXPIRATION_SECS = 0
Спасибо!