2014-09-22 4 views
1

По какой-то причине, когда я пытаюсь получить и обработать следующий URL-адрес с помощью python-запросов, я получаю сообщение об ошибке, приводящее к ошибке моей программы. Другие подобные URLs, кажется, работает нормальноЗапросы на Python, вызывающие ошибку при определенных URL-адресах

import requests 

test = requests.get('http://t.co/Ilvvq1cKjK') 
print test.url, test.status_code 

Что может быть причиной этого URL на провал, а не просто производить код 404 состояния?

+0

Это не 'HTTPConnectionPool (host = 'nasa.gov', порт = 80): Максимальное количество попыток превышено с помощью url:/aeronautics' достаточно информации.? Фактическое подключение к серверу отказывается, поэтому вы не можете получить из него 404 ... –

+0

Это, безусловно, достаточно информации, если я просто обрабатывал один веб-запрос, однако я запускаю несколько URL-адресов через 'request.get () 'и это заставляет программу заканчиваться, есть ли способ обойти это? – John

ответ

2

requests библиотека имеет иерархию исключений, которые перечислены here

Так обернуть ваш запрос GET в Try/за исключением блока:

import requests 

try: 
    test = requests.get('http://t.co/Ilvvq1cKjK') 
    print test.url, test.status_code 
except requests.exceptions.ConnectionError as e: 
    print e.request.url, "*connection failed*" 

Таким образом, вы в конечном итоге с подобным поведением, что вы (теперь вы получаете перенаправленный URL-адрес), но не можете подключиться, а не распечатывать код состояния.

+0

Это сработало отлично, именно то, чего мне не хватало. – John

Смежные вопросы