@afydoz
Вчерашний школьник.

Как правильно указать исключение try except на requests.exceptions.HTTPError?

Осваиваю потихонечку Python.
Если, например выполнить такую команду
import requests
r = requests.get('https://toster.ru/q/qwerty123v')
r.raise_for_status()

то вылезает ошибка
Traceback (most recent call last):
  File "<string>", line 420, in run_nodebug
  File "C:\Users\Marat\Documents\first.py", line 8, in <module>
    r.raise_for_status()
  File "C:\Python34\lib\site-packages\requests\models.py", line 840, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 404 Client Error: Not Found for url: https://toster.ru/q/qwerty123v

Не получается правильно исключить эту ошибку.
Хочется for-ом пройтись по определенным ссылкам и посмотреть r.headers['content-type']
Может есть другие способы парсинга?
  • Вопрос задан
  • 3016 просмотров
Пригласить эксперта
Ответы на вопрос 2
@mshogin
Software developer
А для чего raise_for_status используете?
Я может не совсем понял условия, но как то так

import requests
test_urls = set([
    'http://habrahabr.ru',
    'https://toster.ru/q/qwerty123v'
])

for url in test_urls:
    r = requests.head(url)
    print("{:<50}: {}".format(url, r.headers['content-type']))
Ответ написан
Комментировать
from urllib.error import HTTPError

try:
    r.raise_for_status()
except HTTPError:
    continue
finally:
    Ваш код обработки
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы