2013-06-20 1 views
5

Я пытаюсь добавить файл cookie в существующий cookiejar, используя библиотеку python 1.2.3. Каждый раз, когда я добавляю новый файл cookie, данные в банке обрабатываются для нового файла cookie. Отсутствуют ключи, Значения отсутствуют или соответствуют неправильным клавишам. Я не уверен, что это ошибка библиотеки Request, или я не отправляю cookie правильно. Я использую следующий код, который приводит к плохому файлу cookie в cookiejar. Правильно ли форматирование файла cookie? Есть идеи?Как добавить файл cookie в файл cookiejar в библиотеке запросов python

my_cookie = { 
      'domain':'www.mydomain.com', 
      'expires':None, 
      'name':'COOKIE_NAME', 
      'path':'/', 
      'value':'the cookie works', 
      'version':0 
} 

s = requests.Session() 
requests.utils.add_dict_to_cookiejar(s.cookies, my_cookie) 

ответ

8

Я нашел способ сделать это, импортировав CookieJar, Cookie и cookies. С помощью @Lukasa он показал мне лучший способ. Однако, по его пути, я не смог указать атрибуты «port_specified», «domain_specified», «domain_initial_dot» или «path_specified». Метод «set» автоматически выполняет значения по умолчанию. Я пытаюсь очистить веб-сайт, и их cookie имеет разные значения в этих атрибутах. Поскольку я новичок во всем этом, я не уверен, действительно ли это имеет значение.

my_cookie = { 
"version":0, 
"name":'COOKIE_NAME', 
"value":'true', 
"port":None, 
# "port_specified":False, 
"domain":'www.mydomain.com', 
# "domain_specified":False, 
# "domain_initial_dot":False, 
"path":'/', 
# "path_specified":True, 
"secure":False, 
"expires":None, 
"discard":True, 
"comment":None, 
"comment_url":None, 
"rest":{}, 
"rfc2109":False 
} 

s = requests.Session() 
s.cookies.set(**my_cookie) 
0
plain_cookie = 'nopubuser_abo=1; groupenctype_abo=1' 
cj = requests.utils.cookiejar_from_dict(dict(p.split('=') for p in plain_cookie.split('; '))) 
sess = requests.Session() 
sess.cookies = cj 
+0

Вы, вероятно, следует разделить на ',', то 'strip' пробел перед разбиением на' = '. Кроме того, объяснение было бы неплохо. – wizzwizz4