Frage

Ich habe über Pythons urllib2 der Fähigkeit zu lesen Verzeichnisse zu öffnen und zu lesen, das Passwort geschützt ist, aber auch nach an Beispielen in der Dokumentation suchen, und hier auf Stackoverflow, kann ich nicht meinen Skript an der Arbeit.

import urllib2
# Create an OpenerDirector with support for Basic HTTP Authentication...
auth_handler = urllib2.HTTPBasicAuthHandler()
auth_handler.add_password(realm=None,
                    uri='https://webfiles.duke.edu/',
                    user='someUserName',
                    passwd='thisIsntMyRealPassword')
opener = urllib2.build_opener(auth_handler)
# ...and install it globally so it can be used with urlopen.
urllib2.install_opener(opener)
socks = urllib2.urlopen('https://webfiles.duke.edu/?path=/afs/acpub/users/a')
print socks.read()
socks.close()

Wenn ich den Inhalt drucken, druckt den Inhalt des Login-Bildschirm, dass die URL Ich versuche, Sie zu öffnen umleiten zu. Wer weiß, warum das so ist?

War es hilfreich?

Lösung

auth_handler ist nur für die grundlegende HTTP-Authentifizierung. Die Website enthält hier ein HTML-Formular, so dass Sie Ihren Benutzername / Passwort als POST-Daten einreichen werden müssen.

Ich empfehle Sie das mechanize Modul verwenden, die die Login für Sie vereinfachen.

Schnell Beispiel:

import mechanize

browser = mechanize.Browser()

browser.open('https://webfiles.duke.edu/?path=/afs/acpub/users/a')

browser.select_form(nr=0)

browser.form['user'] = 'username'
browser.form['pass'] = 'password'
req = browser.submit()

print req.read()
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top