Seite 1 von 1

Passwort geschützter Inhalt einer URL auslesen

Verfasst: Montag 20. Dezember 2010, 13:27
von PauleJS
Hallo,

ich will den Inhalt einer passwort-geschützten URL auslesen. Nutze Python 2.7 mit Windows 7.

bisher nutze ich die form-based authentication, die cookies verwendet

Code: Alles auswählen

import urllib2
import urllib

opener = urllib2.build_opener(urllib2.HTTPCookieProcessor())
urllib2.install_opener(opener)

params = urllib.urlencode(dict(username='paul', password='panzer'))
f = opener.open('http://website.de, params)
data = f.read()
f.close()
Fehlermeldung

Code: Alles auswählen

Traceback (most recent call last):
  File "C:\pfad_datei", line 18, in <module>
    f = opener.open('http://website.de', params)
  File "C:\Python27\lib\urllib2.py", line 397, in open
    response = meth(req, response)
  File "C:\Python27\lib\urllib2.py", line 510, in http_response
    'http', request, response, code, msg, hdrs)
  File "C:\Python27\lib\urllib2.py", line 435, in error
    return self._call_chain(*args)
  File "C:\Python27\lib\urllib2.py", line 369, in _call_chain
    result = func(*args)
  File "C:\Python27\lib\urllib2.py", line 518, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
HTTPError: HTTP Error 401: Authorization Required

URL, Nutzername und Passwort stimmen! Wo ist der Fehler?

Re: Passwort geschützter Inhalt einer URL auslesen

Verfasst: Montag 20. Dezember 2010, 13:36
von Sr4l
Du sendest nur ein POST Request mit den Zugangsdaten. Es handelt sich bei der Seite aber um ne HTTP Authentifizierung.

Wie du sowas machst siehst du z.B hier: Der Unterschied wird dir, denke ich, schon im Browser auffallen, wenn du die Seite öffnest.

Re: Passwort geschützter Inhalt einer URL auslesen

Verfasst: Montag 20. Dezember 2010, 13:49
von PauleJS
danke für den link, war selber gerade darauf gestoßen!

bei dem beispiel wie in der dokumentation bekomme ich aber immer noch die selbe fehlermeldung! -> HTTP Error 401: Authorization Required

Code: Alles auswählen

import urllib2
# Create an OpenerDirector with support for Basic HTTP Authentication...
auth_handler = urllib2.HTTPBasicAuthHandler()
auth_handler.add_password(realm='Produkte',
                          uri='link feed',
                          user='paul',
                          passwd='panzer')
opener = urllib2.build_opener(auth_handler)
# ...and install it globally so it can be used with urlopen.
urllib2.install_opener(opener)
urllib2.urlopen('link feed') # -> HTTP Error 401: Authorization Required
bei dem link handelt es sich um ein feed! ist das noch relevant?

Re: Passwort geschützter Inhalt einer URL auslesen

Verfasst: Montag 20. Dezember 2010, 15:35
von Sr4l
Nein ist ja alles HTTP Protokol. Dann wird es kein Basic Auth sein sondern ein Digest.

Was der Server von dir will steht auch in den Antwort Headern im Key "WWW-Authenticate".