2011-02-16 12 views

Respuesta

1

Probablemente necesite usar un proxy. Verifique la configuración normal de su navegador para averiguar cuál. Eche un vistazo a opening websites using urllib2 from behind corporate firewall - 11004 getaddrinfo failed para un problema similar con la solución.

+1

No estoy detrás de un firewall corporativo, y en mi navegador no hay proxies definidos. – quilby

+0

Puedes probar 'telnet www.mozillazine.org' y luego escribir 'GET/http1.1' y presionar enter. ¿Te muestra algún resultado HTML de ese sitio? También intente hacer ping al host mágico 'wpad' que el autoproxy intenta usar. La URL completa debe ser 'http: //wpad/wpad.dat' para autoproxy .. – xeor

1

Esto puede no ser útil si se trata de un problema de nivel de red, pero puede obtener información de depuración configurando debuglevel en httplib. Prueba esto:

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() 

la que se copia directamente desde aquí, espero que sea kosher: http://bytes.com/topic/python/answers/517894-getting-debug-urllib2

1

para solucionar el problema:

  1. haznos saber en qué sistema operativo es el script se ejecuta y qué versión de Python
  2. En el símbolo del sistema en esa misma máquina, haga ping google.com y observe si eso funciona (o si recibe el mensaje "no se pudo encontrar el host")
  3. Si (2) funcionó, abra el navegador en esa máquina (intente en IE si está en Windows) e intente abrir "google.com" allí. Si hay un problema, observe detenidamente la configuración del proxy en Opciones de Internet/Conexiones/Configuración de LAN

Háganos saber cómo va en ambos sentidos.

4

El registro DNS del sitio es tal que Python falla la búsqueda de DNS de una manera peculiar: encuentra la entrada, pero cero direcciones IP asociadas. (Verificar con nslookup.) Por lo tanto, 11004, WSANO_DATA.

Prefijo el sitio con 'www.' y prueba la solicitud nuevamente (Uso nslookup para verificar que su resultado es diferente, también.)

Esta falla esencialmente la misma manera con el Python Requests module:

requests.exceptions.ConnectionError: HTTPConnectionPool (host = '...', puerto = 80): Max reintentos supera con url:/(causada por: [Errno 11004] getaddrinfo no)

4

El problema, en mi caso, fue que algunos instale en algún momento definido una variable de entorno http_proxy en mi máquina cuando No tenía un proxy.

Al eliminar la variable de entorno http_proxy solucionó el problema.

Cuestiones relacionadas