pycookiecheat

by n8henrie

n8henrie / pycookiecheat

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

442 Stars 78 Forks Last release: Not found MIT License 214 Commits 15 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

pycookiecheat

Build
Status

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

  • Free software: MIT
  • Documentation: http://n8h.me/HufI1w

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.
  • Optionally outputs cookies to file (thanks to Muntashir Al-Islam!)

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

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 can I use pycookiecheat on KDE-based Linux distros?

On KDE, Chrome defaults to using KDE's own keyring, KWallet. For pycookiecheat to support KWallet the

dbus-python
package must be installed.

How do I install the dev branch with pip?

Buy Me a Coffee

☕️

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.