How to get cookies from web-browser with Python?
Question: **Context:**  
_I am working on a backend access to an OpenID consumer (StackExchange in
fact). If I am to provide all possible OpenID providers as an option to the
user, then I'd have to simulate browser interaction to authenticate to each of
these providers before I could submit the Open ID URL. However, I think I
could cut this short by accessing the existing cookies of the user's web-
browser, and requesting authentication to the consumer directly with the URL._

**Problem:**  
How to access the user's web-browser's cookies? I've seen very little
information on how to do it with Python. This [previous
question](http://stackoverflow.com/questions/5537592/how-to-extract-firefox-
session-cookie-python-language-preferred) partly answers the problem regarding
Firefox, pointing especially to [the code
sample](http://blog.mithis.net/archives/python/90-firefox3-cookies-in-python)
her below. However, I would need to access cookies from the most common web
browsers used on Linux, not just Firefox.

    
    
    #! /usr/bin/env python
    # Protocol implementation for handling gsocmentors.com transactions
    # Author: Noah Fontes nfontes AT cynigram DOT com
    # License: MIT
    
    def sqlite2cookie(filename):
        from cStringIO import StringIO
        from pysqlite2 import dbapi2 as sqlite
    
        con = sqlite.connect(filename)
    
        cur = con.cursor()
        cur.execute("select host, path, isSecure, expiry, name, value from moz_cookies")
    
        ftstr = ["FALSE","TRUE"]
    
        s = StringIO()
        s.write("""\
    # Netscape HTTP Cookie File
    # http://www.netscape.com/newsref/std/cookie_spec.html
    # This is a generated file!  Do not edit.
    """)
        for item in cur.fetchall():
            s.write("%s\t%s\t%s\t%s\t%s\t%s\t%s\n" % (
                item[0], ftstr[item[0].startswith('.')], item[1],
                ftstr[item[2]], item[3], item[4], item[5]))
    
        s.seek(0)
    
        cookie_jar = cookielib.MozillaCookieJar()
        cookie_jar._really_load(s, '', True, True)
        return cookie_jar
    

**Question: Does Python provide a module that can facilitate cookie extraction
from web-browsers?** Otherwise, how should I adapt the above code to draw
cookies from other browsers, like Chromium etc.?

_PS: Or am I looking at the initial problem (i.e. authenticate to the OpenID
provider) the wrong way? (I feel I am just replacing a problem by another.)_


Answer: I created a module to do exactly that, available here:
<https://bitbucket.org/richardpenman/browsercookie/>

Example usage:

    
    
    import requests
    import browser_cookie
    cj = browser_cookie.chrome()
    r = requests.get('http://stackoverflow.com', cookies=cj)
    

**python3 fork:** <https://github.com/borisbabic/browser_cookie3>

