Estoy usando urllib2 para obtener una página a través de HTTP. A veces, el recurso arroja un error HTTP 400 (solicitud incorrecta) cuando mi solicitud contiene un error. Sin embargo, esa respuesta también contiene un elemento XML que proporciona un mensaje de error detallado. Sería muy útil poder ver ese error en lugar de solo la excepción HTTPError devuelta por urllib2.
¿Cómo devuelvo el contenido del documento a pesar de la excepción?
Respuestas:
Puede tratar el error como una respuesta.
http://www.voidspace.org.uk/python/articles/urllib2.shtml#httperror
fuente
import urllib2 try: request = urllib2.Request('http://www.somesite.com') response = urllib2.urlopen(req) except urllib2.HTTPError as e: error_message = e.read() print error_message
fuente
Puede
read
el mensaje de respuesta de la excepción HTTPError.Ejemplo de Python3
import urllib.request try: request = urllib.request.Request('http://httpstat.us/418', headers={'Accept': 'text/plain', 'User-Agent': ''}) with urllib.request.urlopen(request) as page: print('success: ' + page.read().decode()) except urllib.error.HTTPError as httpError: error = httpError.read().decode() print('error: ' + error)
fuente