Firefox 3 started to store it’s cookies in a SQLite database instead of the old plain-text cookie.txt
. While Python’s cookielib module could read the old cookie.txt file, it doesn’t handle the new format. The following python snippet takes a CookieJar
object and the path to Firefox cookies.sqlite
(or a copy of it) and fills the CookieJar
with the cookies from cookies.sqlite
.
import sqlite3
import cookielib
def get_cookies(cj, ff_cookies):
con = sqlite3.connect(ff_cookies)
cur = con.cursor()
cur.execute("SELECT host, path, isSecure, expiry, name, value FROM moz_cookies")
for item in cur.fetchall():
c = cookielib.Cookie(0, item[4], item[5],
None, False,
item[0], item[0].startswith('.'), item[0].startswith('.'),
item[1], False,
item[2],
item[3], item[3]=="",
None, None, {})
print c
cj.set_cookie(c)
It works well for me, except that apperantly Firefox doesn’t save session cookies to the disk at all.