Get cookie from CookieJar by name

后端 未结 4 1855
半阙折子戏
半阙折子戏 2021-01-03 19:46

I know that I can iterate through the cookies in a cookiejar, and this would allow me to find a cookie with a particular name - but does the CookieJar object itself have any

相关标签:
4条回答
  • 2021-01-03 20:31

    Yes, the __iter__ method will go through each cookie in CookieJar.

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

    A cookie is not just a name and value pair. In its long list (17) of properties, there is domain and path. A domain value of .ibm.com would be applicable to the website mail.ibm.com for example. A domain value of ibm.com and path value of /abc would not apply to the web page ibm.com/index.htm. So by supplying the name alone is insufficient to find the value of an applicable cookie in CookieJar.

    Though the __iter__ method will return a list of cookie objects easily, example list(cj), the internal structure of CookieJar is not a simple list. Internals about the CookieJar class is here.

    0 讨论(0)
  • 2021-01-03 20:33

    It's undocumented internals, but you can access cookies directly like this: cookiejar._cookies[domain][path][name]

    0 讨论(0)
  • 2021-01-03 20:45

    You can also use dict_from_cookiejar, which returns a key/value dictionary from a CookieJar. Something like:

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

    and then access your cookie value by key.

    0 讨论(0)
  • 2021-01-03 20:49

    cookielib.CookieJar?

    you can convert jar to a list and process that, e.g. {i.name: i for i in list(j)}

    and btw, j._cookies is actually a dict-dict already, though not completely trivially indexed.

    cookie jar file?

    I thought those were plain text files...

    0 讨论(0)
提交回复
热议问题