Frage

Ich habe leichte Probleme ein Skript mit URLs zu erstellen. Ich verwende urllib.urlopen () Inhalt der gewünschten URL zu erhalten. Aber einige dieser URLs erfordert Authentifizierung. Und urlopen Aufforderungen ich in meinem Benutzername und dann Kennwort einzugeben. Was ich brauche, ist jede URL zu ignorieren, die eine Authentifizierung erfordern würden, nur leicht überspringt sie und fährt, ist es eine Möglichkeit, dies zu tun? Ich habe mich gefragt, über httperror Ausnahme abfangen, aber in der Tat ist Ausnahme von urlopen () Methode behandelt, so dass es nicht funktioniert.

Danke für jede Antwort.

War es hilfreich?

Lösung

Sie haben Recht über die urllib2.HTTPError Ausnahme:

  

exception urllib2.HTTPError

     

Obwohl seine eine Ausnahme (eine Unterklasse von URLError), eine httperror kann auch als ein nicht-Ausnahmedateiähnliche Rückgabewert (die gleiche Sache, dass urlopen () zurückkehrt). Dies ist nützlich, wenn exotische HTTP Fehlerbehandlung, wie Anfragen für die Authentifizierung.

     

code

     

Ein HTTP-Statuscode gemäß der Definition in RFC 2616. Dieser numerischen Wert entspricht einen Wert gefunden im Wörterbuch von Codes wie in BaseHTTPServer.BaseHTTPRequestHandler.responses gefunden.

Das Code-Attribut der Ausnahme kann dazu verwendet werden, dass die Authentifizierung überprüfen erforderlich ist -. 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
>>> 
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top