我知道我可以遍歷cookiejar中的cookie,這將允許我找到一個具有特定名稱的cookie - 但CookieJar對象本身是否有我可以調用的任何方法來獲取一個名字的cookie?從CookieJar獲取Cookie的名稱
它只是節省我不得不寫一個已經存在的幫助方法。
我知道我可以遍歷cookiejar中的cookie,這將允許我找到一個具有特定名稱的cookie - 但CookieJar對象本身是否有我可以調用的任何方法來獲取一個名字的cookie?從CookieJar獲取Cookie的名稱
它只是節省我不得不寫一個已經存在的幫助方法。
是的,__iter__
方法將通過每個cookie中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
中找到適用的cookie的價值。
雖然__iter__
方法會很容易地返回cookie
對象的列表,例list(cj)
,的CookieJar
內部結構不是簡單的列表。關於CookieJar
類的內部結構是here。
cookielib.CookieJar?
您可以將jar轉換爲列表並進行處理,例如{i.name: i for i in list(j)}
和順便說一句,j._cookies實際上已經是一個字典,雖然不是完全微不足道的索引。
Cookie jar文件?
我以爲那些都是純文本文件......
您也可以使用dict_from_cookiejar,它從CookieJar返回一個鍵/值字典。例如:
my_cookies = requests.utils.dict_from_cookiejar(s.cookies)
然後按鍵訪問您的cookie值。
這是無證的內部,但是您可以直接訪問餅乾這樣的:cookiejar._cookies[domain][path][name]
不,我所看到的,沒有。你可以做一個函數或子類的CookieJar對象,但我不知道爲什麼沒有方法存在。 – Blender