Install
pip install browsercookie
On Windows the builtin sqlite module will raise an error when loading
the FireFox database. An updated version of sqlite can be installed with:
pip install pysqlite
Usage
Here is a hack to extract the title from a webpage:
>>> import re
>>> get_title = lambda html: re.findall('<title>(.*?)</title>', html, flags=re.DOTALL)[0].strip()
And here is the webpage title when downloaded normally:
>>> import urllib2
>>> url = 'https://bitbucket.org/'
>>> public_html = urllib2.urlopen(url).read()
>>> get_title(public_html)
'Git and Mercurial code management for teams'
Now let’s try with browsercookie - make sure you are logged into
Bitbucket in Firefox before trying this example:
>>> import browsercookie
>>> cj = browsercookie.firefox()
>>> opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
>>> login_html = opener.open(url).read()
>>> get_title(login_html)
'richardpenman / home — Bitbucket'
Differences with Python3:
>>> import urllib.request
>>> public_html = urllib.request.urlopen(url).read()
>>> opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
You should see your own username here, meaning the module successfully
loaded the cookies from Firefox.
Here is an alternative example with
requests, this time
loading the Chrome cookies. Again make sure you are logged into
Bitbucket in Chrome before running this:
>>> import requests
>>> cj = browsercookie.chrome()
>>> r = requests.get(url, cookies=cj)
>>> get_title(r.content)
'richardpenman / home — Bitbucket'
Alternatively if you don’t know/care which browser has the cookies you
want then all available browser cookies can be loaded:
>>> cj = browsercookie.load()
>>> r = requests.get(url, cookies=cj)
>>> get_title(r.content)
'richardpenman / home — Bitbucket'
Contribute
So far the following platforms are supported:
Chrome: Linux, OSX, Windows
Firefox: Linux, OSX, Windows
However I only tested on a single version of each browser and so am not
sure if the cookie sqlite format changes location or format in
earlier/later versions. If you experience a problem please open an
issue
which includes details of the browser version and operating system. Also
patches to support other browsers are very welcome, particularly for
Internet Explorer on Windows.