我知道我可以迭代cookiejar中的cookie,这将允许我找到具有特定名称的cookie-但cookiejar对象本身有任何方法可以调用以按名称获取特定cookie吗?
它只是省去了我编写一个已经存在的辅助方法的麻烦。
是的,__iter__
方法将遍历CookieJar
中的每个cookie。
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
中找到适用cookie的值。
尽管__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.cokies实际上已经是一个dict dict了,尽管还没有完全索引。
cookie jar文件?
我以为那是纯文本文件。。。