Cómo resolver URLError: <error de apertura de URL [Errno 10060]
Sistema operativo: Windows 7; Python 2.7.3 usando el shell GUI de Python
Estoy intentando leer un sitio web a través de Python y varios autores utilizan las bibliotecas urllib
y urllib2
. Para almacenar el sitio en una variable, he visto propuesto un enfoque similar:
import urllib
import urllib2
g = "http://www.google.com/"
read = urllib2.urlopen(g)
La última línea genera un error después de más de 120 segundos:
> Traceback (most recent call last): File "<pyshell#27>", line 1, in
> <module>
> r = urllib2.urlopen(o) File "C:\Python27\lib\urllib2.py", line 126, in urlopen
> return _opener.open(url, data, timeout) File "C:\Python27\lib\urllib2.py", line 400, in open
> response = self._open(req, data) File "C:\Python27\lib\urllib2.py", line 418, in _open
> '_open', req) File "C:\Python27\lib\urllib2.py", line 378, in _call_chain
> result = func(*args) File "C:\Python27\lib\urllib2.py", line 1207, in http_open
> return self.do_open(httplib.HTTPConnection, req) File "C:\Python27\lib\urllib2.py", line 1177, in do_open
> raise URLError(err) URLError: <urlopen error [Errno 10060] A connection attempt failed because the connected party did not properly
> respond after a period of time, or established connection failed
> because connected host has failed to respond>
Intenté omitir la g
variable y tampoco lo intenté urlopen("http://www.google.com/")
sin éxito (genera el mismo error después del mismo período de tiempo).
El código de error 10060 significa que no se puede conectar con el par remoto. Puede deberse a un problema de red o principalmente a problemas de configuración, como la configuración del proxy.
Podrías intentar conectar el mismo host con otras herramientas (como ncat) y/o con otra PC dentro de tu misma red local para averiguar dónde está ocurriendo el problema.
Para cuestiones de proxy, hay material aquí:
Usando un PROXY HTTP - Python
¿Por qué no puedo hacer que el método urlopen() de Python funcione en Windows?
¡Espero eso ayude!
Respuesta (¡Lo básico es avanzar!):
Error: 10060 Agregar un parámetro de tiempo de espera a la solicitud resolvió el problema.
Ejemplo 1
import urllib
import urllib2
g = "http://www.google.com/"
read = urllib2.urlopen(g, timeout=20)
Ejemplo 2
También ocurrió un error similar mientras realizaba una solicitud GET. Nuevamente, pasar un timeout
parámetro resolvió el error 10060.
response = requests.get(param_url, timeout=20)
Esto se debe a la configuración del proxy. También tuve el mismo problema, en el que no podía utilizar ninguno de los módulos que obtenían datos de Internet. Hay pasos simples a seguir:
1. abra el panel de control
2. abra las opciones de Internet
3. en la pestaña de conexión abra la configuración de LAN
4. vaya a la configuración avanzada y desmarque todo , elimine todos los proxy allí . O simplemente puede desmarcar la casilla de verificación en el servidor proxy. Esto también hará lo mismo
. 5. Guarde todas las configuraciones haciendo clic en Aceptar.
estás listo. Intente ejecutar el programa nuevamente, debe funcionar, al menos funcionó para mí.