Skip to main content

Borrow cookies from your browser's authenticated session foruse in Python scripts.

Project description

pycookiecheat

Build Status

Borrow cookies from your browser’s authenticated session for use in Python scripts.

Installation

NB: Use pip and python instead of pip3 and python3 if you’re still on Python 2 and using pycookiecheat < v0.4.0. pycookiecheat >= v0.4.0 requires Python 3.5+, and may soon go to 3.6+.

  • pip3 install pycookiecheat

Installation notes regarding alternative keyrings on Linux

See #12. Chrome is now using a few different keyrings to store your Chrome Safe Storage password, instead of a hard-coded password. Pycookiecheat doesn’t work with most of these so far, and to be honest my enthusiasm for adding support for ones I don’t use is limited. However, users have contributed code that seems to work with some of the recent Ubuntu desktops. To get it working, you may have to sudo apt-get install libsecret-1-dev python-gi python3-gi, and if you’re installing into a virtualenv (highly recommended), you need to use the --system-site-packages flag to get access to the necessary libraries.

Alternatively, some users have suggested running Chrome with the --password-store=basic or --use-mock-keychain flags.

Development Setup

  1. git clone https://github.com/n8henrie/pycookiecheat.git

  2. cd pycookiecheat

  3. python3 -m venv venv

  4. venv/bin/pip install -e .[dev]

Usage

from pycookiecheat import chrome_cookies
import requests

url = 'http://example.com/fake.html'

# Uses Chrome's default cookies filepath by default
cookies = chrome_cookies(url)
r = requests.get(url, cookies=cookies)

Use the cookie_file keyword-argument to specify a different filepath for the cookies-file: chrome_cookies(url, cookie_file='/abspath/to/cookies')

Keep in mind that pycookiecheat defaults to looking for cookies for Chromium, not Google Chrome, so if you’re using the latter, you’ll need to manually specify something like "/home/username/.config/google-chrome/Default/Cookies" as your cookie_file.

Features

  • Returns decrypted cookies from Google Chrome on OSX or Linux.

FAQ / Troubleshooting

How about Windows?

I don’t use Windows or have a PC, so I won’t be adding support myself. Feel free to make a PR :)

I get an installation error with the cryptography module on OS X

(pycookiecheat <v0.4.0)

If you’re getting this error and using Homebrew, then you need to follow the instructions for Building cryptography on OS X and export LDFLAGS="-L$(brew --prefix openssl)/lib" CFLAGS="-I$(brew --prefix openssl)/include" and try again.

I get an installation error with the cryptography module on Linux (pycookiecheat <v0.4.0)

Please check the official cryptography docs. On some systems (e.g. Ubuntu), you may need to do something like sudo apt-get install build-essential libssl-dev libffi-dev python-dev prior to installing with pip.

How do I install the dev branch with pip?

  • pip install git+https://github.com/n8henrie/pycookiecheat@dev

Changelog

v0.4.0 :: 20170504

  • Remove compatibility for Python <3.5

  • Add type hints

  • Refactor for smaller functions

  • Expand docstrings

  • Revert from cryptography back to PyCrypto and hashlib for easier installation.

v0.3.4 :: 20170414

0.3.0

0.2.0

  • Fix domain and subdomain matching

  • Make SQL query more secure by avoiding string formatting

  • Many thanks to Brandon Rhodes for 24c4234 !

0.1.10

  • Read version to separate file so it can be imported in setup.py

  • Bugfix for python2 on linux

0.1.9

  • Bugfix for python2 on linux

0.1.8

0.1.7

  • Configurable cookies file (thanks ankostis)

0.1.6

  • OSError instead of Exception for wrong OS.

  • Moved testing requirements to tox and travis-ci files.

0.1.5

  • Updated to work better with PyPI’s lack of markdown support

  • Working on tox and travis-ci integration

  • Added a few basic tests that should pass if one has Chrome installed and has visited my site (n8henrie.com)

  • Added sys.exit(0) if cookie_file not found so tests pass on travis-ci.

0.1.0 (2015-02-25)

  • First release on PyPI.

Prior changelog from Gist

  • 20150221 v2.0.1: Now should find cookies for base domain and all subs.

  • 20140518 v2.0: Now works with Chrome’s new encrypted cookies.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pycookiecheat-0.4.2.tar.gz (15.2 kB view hashes)

Uploaded Source

Built Distribution

pycookiecheat-0.4.2-py3-none-any.whl (10.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page