3

ActivePython2.5.1とcookielibパッケージを使用してWebページを取得しています。

全体ではなく、cookiejarから特定のCookieを表示したいと思います。

#OK to display all the cookies
for index, cookie in enumerate(cj):
    print index, '  :  ', cookie        

#How to display just PHPSESSID?
#AttributeError: CookieJar instance has no attribute '__getitem__'
print "PHPSESSID: %s" % cj['PHPSESSID']

非常に単純だと確信していますが、これをグーグルで検索してもサンプルは返されませんでした。

ありがとうございました。

4

1 に答える 1

5

cookiejar には dict のようなインターフェースはなく、反復のみがサポートされています。そのため、ルックアップ メソッドを自分で実装する必要があります。

ルックアップを実行する Cookie 属性がわかりません。名前を使用した例:

def get_cookie_by_name(cj, name):
    return [cookie for cookie in cj if cookie.name == name][0]

cookie = get_cookie_by_name(cj, "PHPSESSID")

[...]構文に慣れていない場合は、リスト内包表記です。次に[0]、一致する Cookie のリストの最初の要素を選択します。

于 2010-04-07T19:55:37.957 に答える