2013-06-20 25 views
5

Tôi đang cố gắng thêm cookie vào cookiejar hiện có bằng cách sử dụng thư viện yêu cầu 1.2.3 python. Mỗi khi tôi thêm cookie mới, dữ liệu trong lọ được nghiền thành cookie mới. Thiếu khóa, Giá trị bị thiếu hoặc khớp với Khóa không chính xác. Tôi không chắc đó là lỗi Thư viện yêu cầu hay tôi không gửi đúng cookie. Tôi đang sử dụng mã sau đây là kết quả trong một cookie xấu trong cookiejar. Tôi có định dạng đúng cookie không? Bất kỳ ý tưởng?Cách thêm cookie vào cookiejar trong thư viện yêu cầu 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) 

Trả lời

8

Tôi đã tìm ra cách để thực hiện việc này bằng cách nhập CookieJar, Cookie và cookie. Với sự giúp đỡ từ @Lukasa, anh ấy đã chỉ cho tôi một cách tốt hơn. Tuy nhiên, với cách của mình tôi không thể xác định thuộc tính "port_specified", "domain_specified", "domain_initial_dot" hoặc "path_specified". Phương thức "set" tự động thực hiện với các giá trị mặc định. Tôi đang cố gắng để cạo một trang web và cookie của họ có các giá trị khác nhau trong các thuộc tính đó. Như tôi mới cho tất cả điều này tôi không chắc chắn nếu điều đó thực sự quan trọng được nêu ra.

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

Bạn có lẽ nên chia trên ';', khoảng trắng sau đó 'strip' trước khi chia tách vào '='. Ngoài ra, một lời giải thích sẽ được tốt đẹp. – wizzwizz4

Các vấn đề liên quan