我知道我可以遍历 cookiejar 中的 cookie,这将允许我找到具有特定名称的 cookie - 但是 CookieJar 对象本身是否有任何我可以调用的方法来按名称获取某个 cookie?
它只是让我不必编写一个已经存在的辅助方法。
是的,该__iter__
方法将遍历CookieJar
.
for cookie in cj:
print cookie.name, cookie.value, cookie.domain #etc etc
cookie 不仅仅是一个名称和值对。在其长长的属性列表 (17) 中,有domain
和path
。例如,域值.ibm.com
将适用于网站mail.ibm.com
。的域值ibm.com
和路径值/abc
不适用于网页ibm.com/index.htm
。因此,仅提供名称不足以在CookieJar
.
尽管该__iter__
方法很容易返回一个cookie
对象列表,例如list(cj)
,其内部结构CookieJar
并不是一个简单的列表。CookieJar
关于课程的内部信息在这里。
您还可以使用dict_from_cookiejar,它从 CookieJar 返回键/值字典。就像是:
my_cookies = requests.utils.dict_from_cookiejar(s.cookies)
然后按键访问您的 cookie 值。
这是未记录的内部结构,但您可以像这样直接访问 cookie:cookiejar._cookies[domain][path][name]
cookielib.CookieJar?
您可以将 jar 转换为列表并进行处理,例如{i.name: i for i in list(j)}
顺便说一句,j._cookies 实际上已经是一个 dict-dict,尽管没有完全被简单地索引。
饼干罐文件?
我以为那些是纯文本文件...