Pregunta

Estoy teniendo problemas para la creación de un trabajo guión con direcciones URL. Estoy usando urllib.urlopen () para obtener el contenido de la URL deseada. Sin embargo, algunas de estas URL requiere autenticación. Y me lleva urlopen para escribir en mi nombre de usuario y contraseña a continuación. Lo que necesito es hacer caso omiso de todas las URL que va a requerir autenticación, simplemente fácilmente saltar y continuar, hay una manera de hacer esto? Me preguntaba acerca de la captura excepción HTTPError, pero en realidad, una excepción es manejado por el método urlopen (), por lo que no está funcionando.

Gracias por todas las respuestas.

¿Fue útil?

Solución

Tiene usted razón acerca de la href="http://docs.python.org/library/urllib2.html#urllib2.HTTPError" rel="nofollow noreferrer"> urllib2.HTTPError excepción

  

exception urllib2.HTTPError

     

A pesar de ser una excepción (una subclase de URLError), un HTTPError también puede funcionar como un archivo similar valor que no sea excepcional retorno (lo mismo que los rendimientos urlopen ()). Esto es útil cuando el manejo de errores exóticos HTTP, como las solicitudes de autenticación.

     

code

     

Un código de estado HTTP como se define en RFC 2616. Este valor numérico corresponde a un valor que se encuentra en el diccionario de códigos como se encuentra en BaseHTTPServer.BaseHTTPRequestHandler.responses.

El atributo código de excepción se puede utilizar para verificar que la autenticación se requiere -. 401 código

>>> try: 
...     conn = urllib2.urlopen('http://www.example.com/admin')
...     # read conn and process data
... except urllib2.HTTPError, x:
...     print 'Ignoring', x.code
...     
Ignoring 401
>>> 
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top