Если я запустил:
urllib2.urlopen('http://google.com')
даже если я использую другой URL-адрес, я получаю ту же ошибку.
Я уверен, что на моем компьютере или маршрутизаторе нет брандмауэра, и интернет (из браузера) отлично работает.
Если я запустил:
urllib2.urlopen('http://google.com')
даже если я использую другой URL-адрес, я получаю ту же ошибку.
Я уверен, что на моем компьютере или маршрутизаторе нет брандмауэра, и интернет (из браузера) отлично работает.
DNS-запись сайта такова, что Python не выполняет поиск DNS по-своему: он находит запись, но имеет нулевой IP-адрес. (Проверить с помощью nslookup.) Следовательно, 11004, WSANO_DATA.
Префикс сайта "www." и повторите попытку. (Используйте nslookup, чтобы проверить, что его результат тоже отличается.)
Это происходит не так, как с Python Requests module:
request.exceptions.ConnectionError: HTTPConnectionPool (host = '...', port = 80): Максимальное количество попыток превышено с url:/(вызвано: [Errno 11004] getaddrinfo сбой)
В моем случае проблема заключалась в том, что некоторая установка в какой-то момент определяла переменную среды http_proxy на моей машине, когда у меня не было прокси.
Удаление переменной окружения http_proxy устраняет проблему.
Вероятно, вам нужно использовать прокси. Проверьте свои обычные настройки браузера, чтобы узнать, какие. Взгляните на открытие веб-сайтов с использованием urllib2 из-за корпоративного брандмауэра - 11004 getaddrinfo не удалось для аналогичной проблемы с решением.
Это может не помочь вам, если это проблема сетевого уровня, но вы можете получить некоторую информацию об отладке, установив 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
Чтобы устранить проблему:
ping google.com
и наблюдайте, работает ли это (или вы скажете "не удалось найти хост" ).Сообщите нам, как это происходит в любом случае.