Python und Cookies

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
DKKA
User
Beiträge: 45
Registriert: Freitag 18. Oktober 2013, 14:20

Hallo zusammen,

Ich nütze das Requests Module und möchte gerne ein Cookie auslesen den ich zurück bekomme.
Auf der Dokumentationsseite habe ich folgenden Code gefunden:

Code: Alles auswählen

>>> url = 'http://example.com/some/cookie/setting/url'
>>> r = requests.get(url)

>>> r.cookies['example_cookie_name']
'example_cookie_value'
Leider krieg ich nichts mit "r.cookies" nachdem ich einen Get-Request an eine bestimme Adresse geschickt habe. Heisst das, dass ich mehrere Responses vom Server kriege und ich in diesem Fall nur eine Auslese die aber keine Cookies enthält? Wenn ja, wie kann ich die anderen Responses auslesen?

Ich möchte nur einen Request an eine Seite schicken und dann das Cookie auslesen das ich kriege. Im Netz finde ich zwar Beispiele fürs auslesen von Cookies, aber dort wird nirgends das Request-Module genützt und leider blicke ich nicht ganz durch, welches Module ich am besten nützen sollte...

Vielen Dank für Eure Hilfe.
BlackJack

@DKKA: Wenn der Cookie bei der URL die Du abfragst nicht gesetzt wird, dann kannst Du den da auch nicht auslesen. Irgendwie naheligend, oder? ;-)

Und zu *einer* Anfrage bekommst Du auch nur *eine* Antwort.
DKKA
User
Beiträge: 45
Registriert: Freitag 18. Oktober 2013, 14:20

BlackJack hat geschrieben:@DKKA: Wenn der Cookie bei der URL die Du abfragst nicht gesetzt wird, dann kannst Du den da auch nicht auslesen. Irgendwie naheligend, oder? ;-)

Und zu *einer* Anfrage bekommst Du auch nur *eine* Antwort.
Vielen Dank für Deine Antwort.

Das heisst, wenn ich dann keine Cookie-Zeile im Header der Response sehe, wird das Cookie nicht per Header geschickt sondern per Skriptsprache auf dem Rechner erstellt.?
BlackJack

@DKKA: Zum Beispiel. Oder wenn die Seite auch ohne JavaScript etwas nachlädt, zum Beispiel Bilder oder Frame-Inhalte. Das sollte sich mit entsprechenden Entwicklerwerkzeugen herausfinden lassen. Zum Beispiel mit Firefox und dem Firebug-Plugin. Da kannst Du Dir alle Anfragen und Antworten die zu einer Webseite gehören aufzeichnen und anzeigen lassen.
DKKA
User
Beiträge: 45
Registriert: Freitag 18. Oktober 2013, 14:20

BlackJack hat geschrieben:@DKKA: Zum Beispiel. Oder wenn die Seite auch ohne JavaScript etwas nachlädt, zum Beispiel Bilder oder Frame-Inhalte. Das sollte sich mit entsprechenden Entwicklerwerkzeugen herausfinden lassen. Zum Beispiel mit Firefox und dem Firebug-Plugin. Da kannst Du Dir alle Anfragen und Antworten die zu einer Webseite gehören aufzeichnen und anzeigen lassen.
Hm, ich habe JavaScript ausgeschaltet und finde keine Cookie Information im Header der Response. Trotzdem sehe ich, dass ein Cookie erstellt wurde. Wie ist das möglich?
DKKA
User
Beiträge: 45
Registriert: Freitag 18. Oktober 2013, 14:20

BlackJack hat geschrieben:@DKKA: Gar nicht. :-)
Ist das verhext :?

Mit NoScript aktiviert wird bei mir ein Session-Cookie gesetzt, sogar wenn ichs manuell in der about:config deaktiviere => wird das Cookie per Header geschickt.

Dann lese ich den Header wohl nicht vollständig aus....?

Code: Alles auswählen

r = requests.get(url_2, headers=headers)
r.headers
Der Dictionary enthält nämlich nur folgende Schlüssel:

Code: Alles auswählen

'content-encoding'
'transfer-encoding'
'expires'
'vary'
'server'
'connection'
'pragma'
'cache-control'
'date':
'x-powered-by'
'content-type'
Ich sehe nirgends ein Cookie-Field oder sonst was ähnliches.. :(
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

Wenn du das Cookie schon hast braucht der Server es nicht nochmal zu schicken ;) lösch doch mal die Cookies lokal und schau dann den nächsten request an.
Antworten