Seite 1 von 1

[Nicht gelöst] Cookies...Client...

Verfasst: Samstag 17. Februar 2007, 07:08
von sape
Hi.

Code: Alles auswählen

import os, cookielib, urllib2, Cookie
cj = cookielib.MozillaCookieJar()
#cj.load(os.path.join(sys.path[0], "cookies.txt")) # <-Momentan mache ich das so.

# Würde aber gerne direkt so ein Cookie erzeugen.
cookie = Cookie.SimpleCookie()
cookie['domain'] = '.foobar.de' # <- Cookie.CookieError: Attempt to set a reserved key: domain

[...]

cj.set_cookie(cookie)
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
r = opener.open(URL)
content = r.read()
Das Problem ist das ich domain nicht setzen kann.

Das Script für dass ich das brauche handelt sich um keine Web Anwendung, sondern um ein Programm das sich Daten von einer Website holt. Per Cookie kann man da noch Einstellungen machen.

Folgendes habe ich mir schon durchgelesen komme trotzdem irgendwie nicht weiter:

http://docs.python.org/lib/cookie-jar-objects.html
http://docs.python.org/lib/module-Cookie.html
http://docs.python.org/lib/module-cookielib.html

Gibt es da eine Möglichkeit ein Cookie mit domaine, expires, etc zu erzeugen, das ich dann an ``cj.set_cookie(cookie)`` übergeben kann?

lg

Verfasst: Samstag 17. Februar 2007, 12:01
von sape
OK, nun hab ichs doch verstanden. Diese Klassen aus ``Cookie`` sind nur Serverseitig gedacht. Daher auch solche aufrufe wie ``SimpleCookie(os.environ['HTTP_COOKIE'])`. So weit ich das sehe gibt es von der Client Seite keine Möglichkeit selber Cookies aus den ``Cookie``-Klassen zu erzeugen, um sie dann in ``MozillaCookieJar`` zu laden. Wenn ich das richtige verstehe ist das, was ich möchte, auch gar nicht dafür gedacht von der Client Seite aus oder?

Ich mache das nun so, das ich das Cookie mit expires als txt-Datei erzeuge und dann diese txt-Datei mit ``cj.load`` lade. Finde ich zwar nicht so sauber die Lösung, aber was anderes ist wohl nicht möglich.

Verfasst: Sonntag 18. Februar 2007, 15:36
von sape
Hi ich bins nochmal.

Gibt es vielleicht doch eine Möglichkeit? Ich probiere schon seit gestern und nichts funktioniert aus dem Cookie Modul.

Gibt es vielleicht noch eine andere Möglichkeit, das wenn ich eine Seite aufrufe ein Cookie übergebe? Vielleicht in den man den Header oder sowas Modifiziert?

lg

Verfasst: Sonntag 18. Februar 2007, 16:02
von gerold
sape hat geschrieben:Gibt es vielleicht doch eine Möglichkeit?
Hi sape!

Mechanize http://wwwsearch.sourceforge.net/mechanize/ kann damit sicher umgehen.

mfg
Gerold
:-)

Verfasst: Sonntag 18. Februar 2007, 16:20
von sape
Gerold vielen Dank. Ich lade mir das Modul gleich mal runter und Lese mi die Doku durch und probiere es aus.