Недавно я пытался создать программу, которая возвращает URL-адрес, по которому сокращенный URL-адрес (такой как URL-адреса bit.ly и t.co) приводит к использованию библиотеки запросов Python. Я смог сделать это легко с рабочими URL-адресами, используя этот метод:
reveal = requests.get(shortenedUrl, timeout=5)
fullUrl = reveal.url
Однако, когда сокращенный URL-адрес указывает на ненастоящий URL-адрес (пример: http://thisurldoesnotexistyet.com/), методвыше возвращает ConnectionError, как и ожидалось. ConnectionError возвращает это: HTTPSConnectionPool(host='thisurldoesnotexistyet.com', port=443): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<urllib3.connection.VerifiedHTTPSConnection object at 0x00000213DC97F588>, 'Connection to thisurldoesnotexistyet.com timed out. (connect timeout=5)'))
Когда это произошло, я попробовал этот метод, чтобы получить URL перенаправления:
try:
reveal = requests.get(shortenedUrl, timeout=5)
fullUrl = reveal.url
except requests.exceptions.ConnectionError as error:
fullUrl = "http://" + error.host
Однако метод неработа (AttributeError: 'ConnectTimeout' object has no attribute 'host'
). Могу ли я получить URL-адрес, на который сокращенный URL-адрес перенаправляет сообщение об ошибке?