2016-12-22 4 views
3

Manchmal fragt urllib.urlretrieve den Benutzer nach Benutzername und Passwort.Wie stelle ich sicher, dass urllib.urlretrieve nicht interaktiv abläuft?

Das ist, ehrlich gesagt, überraschend, denn ich erwartete urllib.urlretrieve nicht interaktiv zu sein.

Ist es möglich, dass eine Ausnahme ausgelöst wird, wenn eine Authentifizierung erforderlich ist? Wenn nicht, gibt es eine ebenso einfache Alternative, oder sollte ich

os.system('curl ...') 
+0

Vielleicht können Sie versuchen, Ihre eigene "URLopener" Unterklasse zu definieren und "get_user_passwd"/"prompt_user_passwd" darin überschreiben (und eine Instanz davon an "urlretrieve" übergeben) ? – xjcl

Antwort

0

Ich habe versucht, URL zuzugreifen, die absichtlich Benutzernamen und ein Passwort erfordert, und ich bin immer

IOError: ('http error', 401, 'Unauthorized', <httplib.HTTPMessage instance at 0x02A279E0>). 

bekommt man die gleiche ? Wenn ja, können Sie nur diesen Fehler in Ihrem Versuch außer Block

+0

Nein, aber ich wünschte, ich hätte es getan. – MaxB

+0

Die Dokumentation sagt 'FancyURLopener' sollte den Benutzer auffordern. Vielleicht rennst du das nicht vom Terminal aus? – MaxB

Verwandte Themen