Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/n8henrie/pycookiecheat
Borrow cookies from your browser's authenticated session for use in Python scripts.
https://github.com/n8henrie/pycookiecheat
chrome cookies python3 requests
Last synced: 1 day ago
JSON representation
Borrow cookies from your browser's authenticated session for use in Python scripts.
- Host: GitHub
- URL: https://github.com/n8henrie/pycookiecheat
- Owner: n8henrie
- License: mit
- Created: 2015-02-24T03:02:18.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2024-11-03T16:52:03.000Z (about 1 month ago)
- Last Synced: 2024-12-05T01:09:51.268Z (8 days ago)
- Topics: chrome, cookies, python3, requests
- Language: Python
- Homepage: https://n8henrie.com/2013/11/use-chromes-cookies-for-easier-downloading-with-python-requests/
- Size: 345 KB
- Stars: 748
- Watchers: 29
- Forks: 111
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Authors: AUTHORS.md
Awesome Lists containing this project
- awesome-hacking-lists - n8henrie/pycookiecheat - Borrow cookies from your browser's authenticated session for use in Python scripts. (Python)
README
# pycookiecheat
[![master branch build
status](https://github.com/n8henrie/pycookiecheat/actions/workflows/python-package.yml/badge.svg?branch=master)](https://github.com/n8henrie/pycookiecheat/actions/workflows/python-package.yml)Borrow cookies from your browser's authenticated session for use in Python
scripts.- Free software: MIT
- [Documentation](https://n8henrie.com/2013/11/use-chromes-cookies-for-easier-downloading-with-python-requests/)## 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 and in general will aim to support python versions that are stable and
not yet end-of-life: .- `python3 -m pip install pycookiecheat`
### Installation notes regarding alternative keyrings on Linux
See [#12](https://github.com/n8henrie/pycookiecheat/issues/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`
1. `cd pycookiecheat`
1. `python3 -m venv .venv`
1. `./.venv/bin/python -m pip install -e .[dev]`## Usage
### As a Command-Line Tool
After installation, the CLI tool can be run as a python module `python -m` or
with a standalone console script:```console
$ python -m pycookiecheat --help
usage: pycookiecheat [-h] [-b BROWSER] [-o OUTPUT_FILE] [-v] [-c COOKIE_FILE]
[-V]
urlCopy cookies from Chrome or Firefox and output as json
positional arguments:
urloptions:
-h, --help show this help message and exit
-b BROWSER, --browser BROWSER
-o OUTPUT_FILE, --output-file OUTPUT_FILE
Output to this file in netscape cookie file format
-v, --verbose Increase logging verbosity (may repeat), default is
`logging.ERROR`
-c COOKIE_FILE, --cookie-file COOKIE_FILE
Cookie file
-V, --version show program's version number and exit```
By default it prints the cookies to stdout as JSON but can also output a file in
Netscape Cookie File Format.### As a Python Library
```python
from pycookiecheat import BrowserType, get_cookies
import requestsurl = 'https://n8henrie.com'
# Uses Chrome's default cookies filepath by default
cookies = get_cookies(url)
r = requests.get(url, cookies=cookies)# Using an alternate browser
cookies = get_cookies(url, browser=BrowserType.CHROMIUM)
```Use the `cookie_file` keyword-argument to specify a different path to the file
containing your cookies:
`get_cookies(url, cookie_file='/abspath/to/cookies')`You may be able to retrieve cookies for alternative Chromium-based browsers by
manually specifying something like
`"/home/username/.config/BrowserName/Default/Cookies"` as your `cookie_file`.## Features
- Returns decrypted cookies from Google Chrome, Brave, or Slack, on MacOS 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