Как я могу сделать обход сканирования и выходить из него, когда сталкивается с первым исключением?
В целях развития я хотел бы прекратить все действия по сканированию в режиме сканирования, как только произойдет первое исключение (в пауке или конвейере).
Целое число, определяющее максимальное количество ошибок, получаемых до закрытия паука. Если паук генерирует больше, чем это число ошибок, он будет закрыт по причине closespider_errorcount. Если ноль (или не установлен), пауки не будут закрыты числом ошибок.
Если установлено значение 1, паук будет закрыт в первом исключении.
Ответ 2
В spider вы можете просто выбросить CloseSpider исключение.
def parse_page(self, response):
if 'Bandwidth exceeded' in response.body:
raise CloseSpider('bandwidth_exceeded')
Для других (middlewares, конвейер и т.д.) вы можете вручную вызвать close_spider, как сказал ахтер.
Ответ 3
его чисто зависит от вашей бизнес-логики. но это сработает для вас.