urllib2, cookielib, redirect und nicht gesetzte cookies

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
DerToteTee
User
Beiträge: 6
Registriert: Dienstag 12. Februar 2008, 23:56

Dienstag 22. April 2008, 17:03

Hallo alle zusammen, ich habe ein größeres Problem mit der urllib2 in verbindung mit der cookielib

Nun mal zum Problem, ich will mich mittels http post request bei einem dienst anmelden:

Code: Alles auswählen

cookiejar = cookielib.CookieJar()
urlopen = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookiejar))
#... läuft alles soweit
post = { "email" : email, "password" : password }
req = urllib2.Request('http://geheimeseite.de/login', data = post, headers = headers)
resp = urlopen.open(req)
html = resp.read()
#... dannach theoretisch auch keine probleme mehr
eigentlich sollten ja so die cookies, in cookiejar aufgenommen werden, dies ist jedoch leider nicht der fall.

per wireshark habe ich das ganze weiter analysiert und festgestellt:
in den http packet kommt:

Header:
location /login?cookie=yes
Set-Cookie: mein_cookie;
Set-Cookie: weiterer_cookie;
Line-Text:
New location <a href="login?cookie=yes"><p>

man müsste irgendwie den HTTPRedirectHandler ausschalten

das Problem an der Sache, das read() gibt den html code der weiter geleiteten Seite aus
und vieeel schlimmer, die beiden Cookies werden nicht in cookiejar eingepflegt -.-
weiß jemand hierbei rat?
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dienstag 22. April 2008, 18:18

DerToteTee hat geschrieben:weiß jemand hierbei rat?
Ja - Mechanize nutzen und sich den ganzen Cookie und Login-Kram abnehmen lassen. Das manuell zu Handhaben ist wohl nur in den seltensten Fällen nötig.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
DerToteTee
User
Beiträge: 6
Registriert: Dienstag 12. Februar 2008, 23:56

Mittwoch 23. April 2008, 14:28

Mechanize wollte Partu nicht funktionieren bei der form, da diese über javascript erstellt wird

habe das ganze nun mit httplib.HTTP() gelöst, nicht schön, aber es läuft :D
Antworten