How to import firefox cookies to python requests

It looks like there are two type of cookies in the Firefox - request and response. It could be seen while Page inspector > Network > login (post) > Cookies:

Response cookies:   
    UISAuth 
        httpOnly   true
        path       /
        secure     true
        value      tesskMpA8JJ23V43a%2FoFtdesrtsszpw
Request cookies:    
    _ga            GA1.3.125598754.422212
    _gat_is4u      1
    _gid           GA1.3.2145214.241324

The request cookies are stored in the cookies.sqlite file in the

~/.mozilla/firefox/*.default/cookies.sqlite

and can be load to the python object in more ways, for example:

import sqlite3
import http.cookiejar

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)

where cj is CookieJar object and ff_cookies is path to Firefox cookies.sqlite. Taken from this page.

The whole code to load cookies and import to the python requests using session would looks like:

 import requests
 import sys

 cj = http.cookiejar.CookieJar()
 ff_cookies = sys.argv[1] #pass path to the cookies.sqlite as an argument to the script
 get_cookies(cj, ff_cookies)
 s = requests.Session()
 s.cookies = cj

Response cookie is basically session ID, which usualy expires at the end of the session (or some timeout), so they are not stored.


There is a package on PyPi, browser-cookie3, which does exactly this.

import browser_cookie3
import requests

cookiejar = browser_cookie3.firefox(domain_name='signed-in-website.tld')
resp = requests.get('https://signed-in-website.tld/path/', cookies=cookiejar)
print(resp.content)

browser_cookie3.firefox() retrieves Firefox cookies as a cookiejar with a domain name as optional argument.