2013-06-20 8 views
5

Python istekleri 1.2.3 kitaplığını kullanarak varolan bir cookiejar'a bir tanımlama bilgisi eklemeye çalışıyorum. Yeni çerezi her eklediğimde, kavanozdaki veriler yeni çerez için harmanlanır. Anahtarlar eksik, eksik veya yanlış Anahtarlarla eşleştirilen değerler. İstek kitaplığı hatası olup olmadığından emin değilim veya çerezi doğru şekilde göndermiyorum. Cookiejar'da bozuk bir çerezle sonuçlanan aşağıdaki kodu kullanıyorum. Çerezi doğru biçimlendiriyor muyum? Herhangi bir fikir?Python istek kitaplığında cookiejar öğesine bir tanımlama bilgisi ekleme

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) 

cevap

8

CookieJar, Cookie ve çerezleri içe aktararak bunu yapmanın bir yolunu buldum. @ Lukasa'nın yardımıyla, bana daha iyi bir yol gösterdi. Ancak, yolunda "port_specified", "domain_specified", "domain_initial_dot" veya "path_specified" özelliklerini belirtemedim. "Set" yöntemi, varsayılan değerlerle otomatik olarak yapar. Bir web sitesini kazımaya çalışıyorum ve çerezlerinin bu özelliklerde farklı değerleri var. Tüm bunlara yeni olduğum için, bunun gerçekten önemli olup olmadığından emin değilim.

Muhtemelen `üzerinde paylaştırmalıdır
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

;' '=' üzerinde yarmaya önce sonra 'strip' boşluk. Ayrıca, bir açıklama güzel olurdu. – wizzwizz4