30

我知道我可以遍历 cookiejar 中的 cookie,这将允许我找到具有特定名称的 cookie - 但是 CookieJar 对象本身是否有任何我可以调用的方法来按名称获取某个 cookie?

它只是让我不必编写一个已经存在的辅助方法。

4

4 回答 4

31

是的,该__iter__方法将遍历CookieJar.

for cookie in cj:
   print cookie.name, cookie.value, cookie.domain #etc etc

cookie 不仅仅是一个名称和值对。在其长长的属性列表 (17) 中,有domainpath。例如,域值.ibm.com将适用于网站mail.ibm.com。的域值ibm.com和路径值/abc不适用于网页ibm.com/index.htm。因此,仅提供名称不足以在CookieJar.

尽管该__iter__方法很容易返回一个cookie对象列表,例如list(cj),其内部结构CookieJar并不是一个简单的列表。CookieJar关于课程的内部信息在这里

于 2014-12-17T10:52:41.147 回答
24

您还可以使用dict_from_cookiejar,它从 CookieJar 返回键/值字典。就像是:

my_cookies = requests.utils.dict_from_cookiejar(s.cookies)

然后按键访问您的 cookie 值。

于 2015-06-03T13:46:04.000 回答
7

这是未记录的内部结构,但您可以像这样直接访问 cookie:cookiejar._cookies[domain][path][name]

于 2016-04-03T15:03:44.053 回答
1

cookielib.CookieJar?

您可以将 jar 转换为列表并进行处理,例如{i.name: i for i in list(j)}

顺便说一句,j._cookies 实际上已经是一个 dict-dict,尽管没有完全被简单地索引。

饼干罐文件?

我以为那些是纯文本文件...

于 2012-10-08T19:32:43.970 回答