Как перехватить response.code для каждого URL, который пытаются очистить? - PullRequest
0 голосов
/ 02 мая 2019

У меня есть большой список URL для очистки, и после нескольких тестов я заметил, что в выходных данных выполнения паука есть разделы результатов, в которых показаны все коды ответов, с которыми столкнулся сканер. Но когда я запускаю свой код с этой простой строкой, ВСЕ URL возвращаются с кодом = 200

urlStatusCode = response.status

В окне отладки разбивка выглядит следующим образом, и я надеялся зафиксировать то же самое в моем файле, чтобы я мог легко определить, какие URL-адреса мне нужны для проверки, и при необходимости скорректировать код.

Response Count 200 = 2494
Response Count 301 = 122
Response Count 404 = 37

Я знаю, что они все значат, но я хотел бы запечатлеть эти фактические коды в моем CSV-файле, который создается с помощью файла, чтобы я мог исследовать проблемные URL-адреса.

1 Ответ

0 голосов
/ 02 мая 2019

Я не думаю, что вы хотите захватить 301 коды ответов. Когда Scrapy находит 301, по умолчанию он выдает новый запрос для цели перенаправления (новый URL), и ваш обратный вызов получает ответ только на окончательный URL (после всех перенаправлений).

Что касается 404 ответов, по умолчанию они никогда не доходят до вашего обратного вызова. Если вы хотите, чтобы ваш ответный звонок получил эти ответы, у вас есть два варианта:

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