銀月の符号

Python 使い見習いの日記・雑記

ClientCookie による IE のクッキーの読み取り

ClientCookie のドキュメントにおもいっきり書いてあるけれどメモ。

IE のクッキーを読み取るには ClientCookie.MSIECookieJar インスタンスを作って load_from_registry() を呼ぶ。

import ClientCookie
ie_cookie_jar = ClientCookie.MSIECookieJar()
ie_cookie_jar.load_from_registry()

できあがったら後は urllib2.CookieJar クラスと同じ使い方をすれば OK。

MSIECookieJar は save メソッドが実装されていない( NotImplementedError になる)。 IE ブラウザのクッキーを読むことはできても書き戻しは不可。Python アプリ側で使う目的でディスクに保持するならば、 MozillaCookieJar などに変換してこれを保存。

mo_cookie_jar = ClientCookie.MozillaCookieJar(u"cookies")
for cookie in ie_cookie_jar:
    mo_cookie_jar.set_cookie(cookie)
mo_cookie_jar.save()

もしくは pickle する。

import pickle
f = open('cookies', 'wb')
pickle.dump(ie_cookie_jar, f)
f.close()

個人的にはニコニコ動画のログイン情報を IE からとってくる際にお世話になった。これと urllib2 の組み合わせで簡易ニコニコダウンローダーして遊んだり。