Wrapper for requests that saves cookie data between script runs, typically for login sessions
Project description
RequestsLoginSession
requestsloginsession
is a simple wrapper for requests.Session()
that saves the data locally via pickle to allow session information to be recalled on subsequent script runs without needing to relogin. All the attributes from requests
are available.
Install
From PyPi:
pip install requestsloginsession
Or use the latest commit:
git clone https://github.com/damonjavert/requestsloginsession.git
cd requestsloginsession
python setup.py install
Features
- Saves cookie data to a local file via
pickle
and uses it to send cookie data in subsequent requests. - Cookie data saved has an expiry time -
max_session_time_seconds
, after whichrequestsloginsession
will not send it, or you can force it not to be used withforce_login
. - Login success can be tested with a specific URL -
login_test_url
and string -login_test_string
to be found on the page. - A proxy can be used.
- Customisable
user_agent
string.
Example usage
>>> from requestsloginsession import RequestsLoginSession
>>> login_url = "http://httpbingo.org/"
>>> login_data = { 'username' : 'example', 'password' : 'example' }
>>> mysession = RequestsLoginSession(login_url, login_data)
>>> r = mysession.retrieve_content("http://httpbingo.org/cookies/set?k1=v1234&k2=v5678")
>>>
$ file httpbingo.org_session.dat
httpbingo.org_session.dat: data
$ # We have now exited python, when we start a new interpreter we can request httpbingo
$ # to show our cookies and the `k1=v1234&k2=v5678` data will now be shown:
$ python3
>>> from requestsloginsession import RequestsLoginSession
>>> login_url = "http://httpbingo.org/"
>>> login_data = { 'username' : 'example', 'password' : 'example' }
>>> mysession = RequestsLoginSession(login_url, login_data)
>>> r = mysession.retrieve_content("http://httpbingo.org/cookies")
>>> r.json()
{'k1': 'v1234', 'k2': 'v5678'}
>>> r.status_code
200
>>> r.text
'{\n "k1": "v1234",\n "k2": "v5678"\n}\n'
FAQ
Why not just use requests.Session()
directly?
Of course you can do, but this module makes life easier by handling the cookie data for you and allowing the cookie data to survive multiple runs of your script, so you do not need to relogin each time.
I have an API key for the site I am requesting, do I still need to use this?
No, you probably do not. This module is designed to access sites where you need to authenticate before you can access it. Any modern API does not need this and you send an API key in each request. - If you have an API key you can just use requests
directly.
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
Built Distribution
Hashes for requestsloginsession-0.7.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | b228d2828e7e91dc5aaa7adcd13d9c01968eba90deb27305e3084c2fce938738 |
|
MD5 | 98fa3bec5e69b21c1242faea6a700379 |
|
BLAKE2b-256 | 7f59717b66afca5b4f1d053abd87b068c60c5373326dc83ea53ee1c7de823f80 |
Hashes for requestsloginsession-0.7.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 67d9e243c2b356fd408aded9345e8befa1383841c0fed566b2f87c537db59ce1 |
|
MD5 | 0f5400c9f067aba598f69b156f51a6ea |
|
BLAKE2b-256 | cd6e3cb3e47b41c583db9ba5cf5329997efd5911aa0106002bdbb03efa08c69a |