Обратите внимание, это то, что псевдо, но код, вероятно, будет работать до 99% :) Я бы попробовал использовать как можно более простой код:
(я не уверен, что cj.save (...) удаляет файлы cookie между сеансами, поэтому я в большинстве своем использовал pickle, а для других вещей мне нужно хранить между сеансами «как есть»)
import cookielib, urllib2, os, pickle
if os.path.isFile('./cookies.txt'):
cj = pickle.load(open('./cookies.txt', 'rb'))
else:
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
r = opener.open("http://example.com/")
pickle.dump(cj, open("./cookies.txt", "wb"))
Во-вторых, уверены ли вы, чтополучаемый вами файл cookie - это не просто файл cookie сеанса, который должен заканчиваться по истечении определенного периода времени или когда вы закрываете соединение?Вы знаете, ни один из этих файлов cookie "Запомнить меня"?
Попробуйте настроить свой собственный "веб-сервер" на Python:
import socket
socket.bind(('', 80))
socket.listen(5)
ns, na = socket.accept()
ns.recv(8192)
ns.send("""\
HTTP/1.1 200 OK\r\n
Date: Wed, 26 Oct 2011 08:37:34 CET\r\n
Server: Apache/1.3.3.7 (Unix) (Red-Hat/Linux)\r\n
Last-Modified: Wed, 26 Oct 2011 08:37:34 CET\r\n
Accept-Ranges: bytes\r\n
Content-Length: 5\r\n
Connection: close\r\n
Set-Cookie: moo=wtf; path=/\r\n
Content-Type: text/html; charset=UTF-8\r\n
\r\n
Hello""")
ns.close()
ns, na = socket.accept()
ns.recv(8192)
ns.close()
Посмотрите, что вы выводите в фактическом выражении данных HTTP?Всегда приятно иметь данные «до» и «после» ... таким образом, вы будете знать, почему они не сохраняются / не загружаются.