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
_のドメイン値は、たとえばWebサイト_mail.ibm.com
_に適用できます。 _ibm.com
_のドメイン値と_/abc
_のパス値は、Webページ_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._cookiesは実際にはすでにdict-dictですが、完全に簡単に索引付けされているわけではありません。
クッキーjarファイル?
プレーンテキストファイルだと思いました...
CookieJarとCookieモジュールを組み合わせる
const { parse } = require("cookie");
// uri eg: http://localhost
const cookies = parse( cookieJar.getCookieString(uri) );
const cookieValue = cookies["cookie-name"];
uri
にhttp://
プレフィックスがない場合、jarからCookieを取得しません