firefoxのcookieをcurlから使う
firefoxのcookieは以下の場所に保存されています。
Wo die Liebe dich findet |
ここにcookies.sqliteという名前で保存されています。名前のとおりsqliteのデータベースです。
cookies.sqliteはそのままだとロックされていて読みこめないので、まず適当にコピーします。
$ cp cookies.sqlite /tmp/cookies.txt
それから以下のようにすれば値が見れます。
$ cd /tmp $ sqlite3 cookies.txt sqlite> select * from moz_cookies;
…なんですが、まぁ値見れてもしょうがないのでここからcurlで使える形にする必要があります。
curlで使える形というのはHTTPヘッダー(Set-Cookie: ~)か、netscape形式のもの(これ)です。
まぁ普通にselectすればいいんですが、シェルスクリプトにしたものがありました。
http://slacy.com/blog/2010/02/using-cookies-sqlite-in-wget-or-curl/
ちなみに、pythonだと2.5から標準でsqliteに対するインターフェースが利用できます。
>>> import os >>> import sqlite3 >>> import shutil >>> >>> shutil.copyfile(os.path.expanduser('~/Library/Application Support/Firefox/Profiles/0nndzg3g.default/cookies.sqlite'),'/tmp/cookies.txt') >>> conn = sqlite3.connect("/tmp/cookies.txt") >>> cursor = conn.execute("SELECT host, \ ... case substr(host,1,1)='.' when 0 then 'FALSE' else 'TRUE' end,\ ... path,\ ... case isSecure when 0 then 'FALSE' else 'TRUE' end,\ ... expiry,name,value from moz_cookies"\ ... ) >>> >>> for row in cursor.fetchall(): ... print row
みたいな感じです。rowにはタプルとしてhost,flag,path,secure,expiration,name,valueが入ります。