Откуда в сообщении "ОШИБКА: обработка ошибки паука <GET ..."? - PullRequest
0 голосов
/ 14 апреля 2019

Я читаю журнал с запуском предыдущего паука. Мне любопытно узнать, откуда взято это исключение и как я могу на него реагировать:

2019-04-12 22:00:55 [scrapy.core.scraper] ERROR: Spider error processing <GET https://www.website.com/next_page> (referer: https://www.website.com/prev_page)
Traceback (most recent call last):...

Я посмотрел файлы middlewares.py, settings.py и т. Д. В моем проекте, и я не нахожу строк, где написано logging.error или spider.logger.error. Даже во встроенных методах def process_spider_exception(self, response, exception, spider): или def process_exception(self, request, exception, spider): я не нахожу ни одной строки, которая заказывает сообщение журнала. Просмотр документации не проясняет ее, как по мне.

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

Помимо желания действовать по нему, я хотел бы знать, где он и как он работает.

1 Ответ

1 голос
/ 14 апреля 2019

Чтобы ответить на ваш вопрос, это сообщение журнала приходит из метода handle_spider_error в пакете scrapy

ядро ​​/ scraper.py

Что касается поиска источника ошибки, подсказки обычно являются трассировкой, которая сопровождает этот журнал ошибок.

Вы также можете следовать коду, который вызывает этот URL 'https://www.website.com/next_page'

...