web-dev-qa-db-ja.com

名前でCookieJarからCookieを取得する

Cookiejar内のcookieを反復処理できることは知っています。これにより、特定の名前のcookieを見つけることができます。ただし、CookieJarオブジェクト自体には、特定のcookieを名前で取得するために呼び出すことができるメソッドがありますか?

すでに存在するヘルパーメソッドを作成する手間が省けます。

21
Matt

はい、___iter___メソッドはCookieJar内の各Cookieを通過します。

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

Cookieは、名前と値のペアだけではありません。プロパティの長いリスト(17)には、domainpathがあります。 _.ibm.com_のドメイン値は、たとえばWebサイト_mail.ibm.com_に適用できます。 _ibm.com_のドメイン値と_/abc_のパス値は、Webページ_ibm.com/index.htm_には適用されません。したがって、名前だけを指定するだけでは、CookieJarで該当するCookieの値を見つけるには不十分です。

___iter___メソッドはcookieオブジェクトのリストを簡単に返しますが、たとえばlist(cj)ですが、CookieJarの内部構造は単純なリストではありません。 CookieJarクラスの内部は ここ です。

24
Old Geezer

dict_from_cookiejar を使用することもできます。これは、CookieJarからキー/値辞書を返します。何かのようなもの:

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

次に、キーでCookieの値にアクセスします。

15
coda

文書化されていない内部ですが、次のように直接Cookieにアクセスできます。cookiejar._cookies[domain][path][name]

5
David K. Hess

cookielib.CookieJar?

jarをリストに変換して、それを処理できます。 {i.name: i for i in list(j)}

ところで、j._cookiesは実際にはすでにdict-dictですが、完全に簡単に索引付けされているわけではありません。

クッキーjarファイル?

プレーンテキストファイルだと思いました...

1
Dima Tisnek

CookieJarとCookieモジュールを組み合わせる

const { parse } = require("cookie");
// uri eg: http://localhost
const cookies = parse( cookieJar.getCookieString(uri) );
const cookieValue = cookies["cookie-name"];

urihttp://プレフィックスがない場合、jarからCookieを取得しません

0
fider