Как перечитать страницы с кодом ошибки 4xx в scrapy при использовании кеша? - PullRequest
0 голосов
/ 24 декабря 2018

Есть ли способ игнорировать коды ошибок 4xx при повторном сканировании домена, который частично находится в кеше?

Я просканировал огромную часть страницы перед тем, как столкнуться с проблемами, затем я изменил настройки, чтобы они не кэшировалисьКодов 4xx, потому что сканер остановил

Crawled (403) <GET https:/... ['cached']:

Изменен параметр кэширования на: HTTPCACHE_IGNORE_HTTP_CODES = [401, 403, 404]

Это, к сожалению, вынуждает меня пересматривать страницу без кэша, так какТеперь я получаю эту информацию из журналов:

ИНФОРМАЦИЯ: Игнорирование ответа <403 <a href="https://www" rel="nofollow noreferrer">https://www...>: Код состояния HTTP не обрабатывается или не разрешается.

ЛибоКстати, сканер останавливается в той же позиции, в которой он извлекает кэшированные коды ответов 403, в то время как теперь они не из кэша 200.

Как я могу адаптировать настройки, чтобы продолжить сканирование страницы?

Или, как альтернатива, как можно очистить / сохранить кэш?Потому что в противном случае мне нужно было бы переопределить без настройки кэша, насколько я понимаю, документы.

Ответы [ 3 ]

0 голосов
/ 26 декабря 2018

Когда вы кэшируете страницу, то при каждом том же запросе scrapy переходит к этим кэшированным данным, и если эта страница кэшируется как 403 или любая другая, scrapy не предлагает снова сканировать.таким образом, либо вы удаляете эту страницу из кэшированных данных, либо выключаете кеш для повторного извлечения веб-страницы.

0 голосов
/ 16 января 2019

Используйте настройку HTTPCACHE_IGNORE_HTTP_CODES.

0 голосов
/ 24 декабря 2018

Лучшее решение, которое я смог найти, - это изменить имя гусеничного устройства и начать сканирование заново.Это работало, как и при использовании новой папки кеша, но мой первоначальный вопрос не получил ответа, и мне пришлось заново сканировать страницы, которые я уже скачал в кеш.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...