firefoxのcookieをcurlから使う

firefoxcookieは以下の場所に保存されています。
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が入ります。