Domanda

sto avendo problemi a creare un lavoro script con gli URL. Sto usando urllib.urlopen () per ottenere il contenuto di URL desiderato. Ma alcuni di questi URL richiede l'autenticazione. E mi spinge urlopen per digitare il mio nome utente e la password poi. Che cosa ho bisogno è quello di ignorare ogni URL che ti richiedono l'autenticazione, appena facilmente saltare e continuare, c'è un modo per fare questo? Mi chiedevo circa la cattura HTTPError eccezione, ma in realtà, eccezione è gestita con il metodo urlopen (), in modo che non funziona.

Grazie per ogni risposta.

È stato utile?

Soluzione

Hai ragione circa la urllib2.HTTPError eccezione:

  

exception urllib2.HTTPError

     

Pur essendo un'eccezione (una sottoclasse di URLError), un HTTPError può anche funzionare come un file simile valore non eccezionale ritorno (la stessa cosa che restituisce urlopen ()). Questo è utile quando la gestione degli errori HTTP esotici, come le richieste di autenticazione.

     

code

     

Un codice di stato HTTP come definito in RFC 2616. Questo valore numerico corrisponde ad un valore trovato nel dizionario di codici come si trova in BaseHTTPServer.BaseHTTPRequestHandler.responses.

L'attributo codice di eccezione può essere utilizzato per verificare che autenticazione richiesto -. Codice 401

>>> try: 
...     conn = urllib2.urlopen('http://www.example.com/admin')
...     # read conn and process data
... except urllib2.HTTPError, x:
...     print 'Ignoring', x.code
...     
Ignoring 401
>>> 
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top