У меня есть большое количество коротких URL-адресов, и я хочу их расширить. Я нашел где-то в Интернете (я пропустил источник) следующий код:
short_url = "t.co/NHBbLlfCaa"
r = requests.get(short_url)
if r.status_code == 200:
print("Actual url:%s" % r.url)
Работает отлично. Но я получаю эту ошибку, когда пингую один и тот же сервер много раз:
urllib3.exceptions.MaxRetryError:
HTTPConnectionPool (host = 'www.fatlossadvice.pw', port = 80): максимальное количество попыток
превышен с URL:
/TIPS/KILLED-THAT-TREADMILL-WORKOUT-WORD-TO-TIMMY-GACQUIN.ASP (вызвано
by NewConnectionError (': не удалось установить новое соединение: [Errno
11004] getaddrinfo не удалось ',))
Я перепробовал множество решений, например, здесь: Максимальное количество попыток превышено с URL в запросах , но ничего не помогло.
Я думал о другом решении, которое заключается в передаче идентификатора пользователя в запросе, и каждый раз, когда я изменяю его случайным образом (с использованием большого числа агентов использования):
user_agent_list = [
'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0',
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:25.0) Gecko/20100101 Firefox/25.0',
'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:24.0) Gecko/20100101 Firefox/24.0',
'Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1667.0 Safari/537.36',
]
r = requests.get(short_url, headers={'User-Agent': user_agent_list[np.random.randint(0, len(user_agent_list))]})
if r.status_code == 200:
print("Actual url:%s" % r.url)
Моя проблема в том, что r.url всегда возвращает короткий URL вместо длинного (расширенного).
Чего мне не хватает?