Urllib2.URLError: <ошибка urlopen [Errno 11004] getaddrinfo не удалось>

Если я запустил:

urllib2.urlopen('http://google.com')

даже если я использую другой URL-адрес, я получаю ту же ошибку.

Я уверен, что на моем компьютере или маршрутизаторе нет брандмауэра, и интернет (из браузера) отлично работает.

Ответы

Ответ 1

DNS-запись сайта такова, что Python не выполняет поиск DNS по-своему: он находит запись, но имеет нулевой IP-адрес. (Проверить с помощью nslookup.) Следовательно, 11004, WSANO_DATA.

Префикс сайта "www." и повторите попытку. (Используйте nslookup, чтобы проверить, что его результат тоже отличается.)

Это происходит не так, как с Python Requests module:

request.exceptions.ConnectionError: HTTPConnectionPool (host = '...', port = 80): Максимальное количество попыток превышено с url:/(вызвано: [Errno 11004] getaddrinfo сбой)

Ответ 2

В моем случае проблема заключалась в том, что некоторая установка в какой-то момент определяла переменную среды http_proxy на моей машине, когда у меня не было прокси.

Удаление переменной окружения http_proxy устраняет проблему.

Ответ 4

Это может не помочь вам, если это проблема сетевого уровня, но вы можете получить некоторую информацию об отладке, установив debuglevel на httplib. Попробуйте следующее:

import urllib, urllib2, httplib

url = 'http://www.mozillazine.org/atom.xml'
httplib.HTTPConnection.debuglevel = 1

print "urllib"

data = urllib.urlopen(url);

print "urllib2"

request = urllib2.Request(url)
opener = urllib2.build_opener()
feeddata = opener.open(request).read()

Скопировано прямо здесь, надеюсь, что кошерный: http://bytes.com/topic/python/answers/517894-getting-debug-urllib2

Ответ 5

Чтобы устранить проблему:

  • сообщите нам, какая ОС работает под управлением script и какая версия Python
  • В командной строке на этом же компьютере сделайте ping google.com и наблюдайте, работает ли это (или вы скажете "не удалось найти хост" ).
  • Если (2) работал, откройте браузер на этом компьютере (попробуйте IE, если в Windows) и попробуйте открыть там "google.com". Если есть проблема, внимательно посмотрите на настройки прокси-сервера в настройках Internet/Connections/LAN Settings

Сообщите нам, как это происходит в любом случае.