No debe marcar un código de estado después de la captura URLError
, ya que la excepción puede ser elevada en situaciones donde no hay código de estado HTTP disponible, por ejemplo, cuando' volver a obtener conexión rechazó errores.
Uso HTTPError
para comprobar si hay errores específicos HTTP, y luego usar URLError
para comprobar si hay otros problemas:
try:
urllib2.urlopen(url)
except urllib2.HTTPError, e:
print e.code
except urllib2.URLError, e:
print e.args
Por supuesto, es probable que desee hacer algo más inteligente que acaba de imprimir los códigos de error, Pero se entiende la idea.
Extraño. ¿Puedes pegar el código que usas para abrir la url? –