1 Вопрос: Как перехватить response.code для каждого URL, который пытаются очистить?

вопрос создан в Thu, May 2, 2019 12:00 AM

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

urlStatusCode = response.status

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

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

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

    
- 1
  1. Можете ли вы поделиться своим кодом и ожидаемым выводом в CSV?
    2019-05-02 15: 10: 50Z
  2. 2019-05-02 15: 35: 41Z
1 ответ                              1                         

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

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

0
2019-05-02 15: 42: 40Z
  1. я приступлю к их обработке, поскольку я продолжаю строить и делать вещи более эффективными. Но во время этой отладки и сборки мне просто нужно знать, какие URL-адреса получают 404, чтобы я мог проверить и убедиться, и если они действительно не существуют, тогда я могу просто удалить их из своего списка и построить обработку ошибок ... но я буду рассмотрите вышеупомянутые предложения.
    2019-05-02 19: 12: 53Z
  2. Вы также можете проверить журналы. Они указывают, какие URL привели к какому коду ошибки. Вы можете перенаправить вывод журнала в файл, а затем проверить содержимое файла, чтобы найти 404 URL-адреса.
    2019-05-03 06: 33: 22Z
источник размещен Вот