@Cenzor

Scrapy, как перехватить исключение?

Прошу помощи, так как сам не могу сообразить в чём дело, видимо нужен взгляд со стороны.
Есть небольшой парсер на Scrapy. Пытаюсь обработать ошибку FileNotFoundError. Для теста намерено удаляю директорию, куда обращается парсер во время работы, запускаю спайдер, выбрасывается исключение сгенерированное pipeline'ом:
File "/.../pipelines.py", line 16, in process_item
    with open(path+filename, 'w') as f:
FileNotFoundError: [Errno 2] No such file or directory: 'downloaded/www.httphttpbinbin.org.html'

Я пробую поймать исключение в методе start_requests() оборачивая в try-except запрос yield scrapy.Request(...) - не ловится. Пробую обработать его в методе errback выражением if failure.check(FileNotFoundError) - тоже не ловится.
Прошу подсказать, где и как правильно его перехватить? Спасибо.
  • Вопрос задан
  • 81 просмотр
Пригласить эксперта
Ответы на вопрос 2
SoreMix
@SoreMix Куратор тега Python
yellow
Файл во время работы удаляется что ли? Он же с режимом w
Ответ написан
@StarCatSTT
Исключение должна выдавать инструкция open()
Тогда:
try:
    with open(path+filename, 'w') as f:
        pass #some code
exept FileNotFoundError:
    print("Я не нашел файл")
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы