Si je cours:
urllib2.urlopen('http://google.com')
même si j'utilise une autre URL, j'obtiens la même erreur.
Je suis à peu près sûr qu'il n'y a pas de pare-feu sur mon ordinateur ou mon routeur et qu'Internet (à partir d'un navigateur) fonctionne correctement.
Le problème, dans mon cas, était que certaines installations définissaient à un moment donné une variable d’environnement http_proxy sur ma machine alors que je n’avais pas de proxy.
Supprimer la variable http_proxy environment a résolu le problème.
L'enregistrement DNS du site est tel que Python échoue de manière particulière dans la recherche DNS: il trouve l'entrée, mais aucune adresse IP associée. (Vérifiez avec nslookup.) Par conséquent, 11004, WSANO_DATA .
Préfixez le site avec 'www.' et essayez à nouveau la demande. (Utilisez nslookup pour vérifier que le résultat est différent également.)
Cela échoue essentiellement de la même manière avec le module Python Requests :
requests.exceptions.ConnectionError: HTTPConnectionPool (Host = '...', port = 80): Nombre maximal de tentatives dépassé avec l'url:/(provoqué par: [Errno 11004] getaddrinfo a échoué
Vous devrez probablement utiliser un proxy. Vérifiez les paramètres de votre navigateur habituel pour savoir lequel. Jetez un oeil sur l'ouverture de sites Web à l'aide de urllib2 derrière un pare-feu d'entreprise - 11004, échec de getaddrinfo pour un problème similaire de solution.,
Cela ne vous aidera peut-être pas s'il s'agit d'un problème réseau, mais vous pouvez obtenir des informations de débogage en définissant debuglevel sur httplib. Essaye ça:
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()
Ce qui est copié directement à partir d’ici, espérons que ce sera casher: http://bytes.com/topic/python/answers/517894-getting-debug-urllib2
Pour résoudre le problème:
ping google.com
et observez si cela fonctionne (ou si vous dites "impossible de trouver l'hôte")Dites-nous comment ça se passe dans les deux sens.
ajoutez s à l'adresse http i.e urllib2.urlopen (' https://google.com ')
a travaillé pour moi