Question

Je vais avoir peu de mal à créer un script de travail avec des URL. J'utilise urllib.urlopen () pour obtenir le contenu de l'URL souhaitée. Mais certaines de ces URL requiert une authentification. Et urlopen me pousse à taper mon nom d'utilisateur et mot de passe. Ce que je dois est d'ignorer toutes les URL qui va exiger une authentification, juste sauter facilement et continuer, est-il un moyen de le faire? Je me demandais d'attraper HTTPError exception, mais en fait, exception est gérée par la méthode urlopen (), donc il ne fonctionne pas.

Merci pour chaque réponse.

Était-ce utile?

La solution

Vous avez raison de l'exception urllib2.HTTPError :

  

exception urllib2.HTTPError

     

Bien être une exception (une sous-classe de URLError), un HTTPError peut également fonctionner comme une valeur de retour comme fichier non exceptionnel (renvoie la même chose que urlopen ()). Ceci est utile lors de la manipulation des erreurs HTTP exotiques, tels que les demandes d'authentification.

     

code

     

Un code d'état HTTP tel que défini dans la norme RFC 2616. Cette valeur numérique correspond à une valeur trouvée dans le dictionnaire de codes que l'on trouve dans BaseHTTPServer.BaseHTTPRequestHandler.responses.

L'attribut de code de l'exception peut être utilisée pour vérifier que l'authentification est nécessaire -. Code 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
>>> 
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top