如何更改python CookieJar中cookie的少量值?

问题描述:

我需要更改一些来自帖子回复的cookie的属性,但我无法在CookieJar中引用cookie。我怎样才能做到这一点?如何更改python CookieJar中cookie的少量值?

阅读文档后,pop只给出了值,而我需要更改httponly字段和值之类的东西,并且通过名称引用仅给出值,而不是cookie。

我发现要做到这一点,最好的办法是做

for cookie in my_cookie_jar: 
    if cookie <is the cookie I want, eg cookie.name == my_cookie_name>: 
     cookie.<morsel> = new_value 
     my_cookie_jar.pop(cookie.name) # removes cookie from my_cookie_jar 
     my_cookie_jar.set_cookie(cookie) # adds it back in 

变戏法似的。显然扩展CookieJar类并将其添加到它使其整洁。

+0

如果您知道cookie的名称,为什么要迭代该jar? IOW,'c = jar.pop(cookie_name); c.morsel = new_value; jar.set_cookie(c)' – falsetru 2014-10-14 12:00:57

+0

好问题;然而,问题是'pop'只返回cookie的名字,而不是cookie。所以你必须首先获取cookie来迭代jar,然后修改并弹出它。不过,我对更好的解决方案非常开放。 – 2014-10-14 12:16:59

+0

刚刚意识到我写了“...返回Cookie的名称...”应读取“...返回cookie的值...”。 – 2014-10-15 08:30:46