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.
Thanks, this is exactly what I was looking for. I wanted to download a cookie-protected page and I found a solution with Python + wget (see http://bit.ly/pp25LP). Now with this snippet I can build a full-Python solution.
Hey man,
Thanks for the tip. I’m building a cookie dict from the Chrome cookie sql, and this was just the trick I was looking for.
TankorSmash
you can find the session cookies in sessionstore.js of the same directory