Enrique, parte de este gran equipo, nos ha hecho el favor de redactar este post porque controla a la perfección el tema.
Solución:
Asumiendo que lo hiciste import requests
usted quiere requests.ConnectionError
. ConnectionError
es una excepción definida por requests
. Consulte la documentación de la API aquí.
Por lo tanto, el código debería ser:
try:
requests.get('http://www.google.com')
except requests.ConnectionError:
# handle the exception
Según la documentación, he agregado los siguientes puntos: –
-
En el caso de un problema de red (conexión rechazada, por ejemplo, problema de Internet), las solicitudes generarán una excepción ConnectionError.
try: requests.get('http://www.google.com') except requests.ConnectionError: # handle ConnectionError the exception
-
En el caso de una rara respuesta HTTP no válida, las solicitudes generarán una excepción HTTPError. Response.raise_for_status() generará un HTTPError si la solicitud HTTP devolvió un código de estado fallido.
try: r = requests.get('http://www.google.com/nowhere') r.raise_for_status() except requests.exceptions.HTTPError as err: #handle the HTTPError request here
-
En el caso de tiempos fuera de la solicitud, se genera una excepción de tiempo de espera.
Puede decirle a las solicitudes que dejen de esperar una respuesta después de un número determinado de segundos, con un argumento de tiempo de espera.
requests.get('https://github.com/', timeout=0.001) # timeout is not a time limit on the entire response download; rather, # an exception is raised if the server has not issued a response for # timeout seconds
-
Todas las excepciones que las solicitudes generan explícitamente se heredan de solicitudes.excepciones.RequestException. Entonces, un controlador base puede verse como,
try: r = requests.get(url) except requests.exceptions.RequestException as e: # handle all the errors here
En realidad, hay muchas más excepciones que requests.get()
puede generar que simplemente ConnectionError
. Aquí hay algunos que he visto en producción:
from requests import ReadTimeout, ConnectTimeout, HTTPError, Timeout, ConnectionError
try:
r = requests.get(url, timeout=6.0)
except (ConnectTimeout, HTTPError, ReadTimeout, Timeout, ConnectionError):
continue
Finalizando este artículo puedes encontrar las notas de otros administradores, tú asimismo tienes la habilidad mostrar el tuyo si te gusta.