Urlquick 2 is a wrapper for requests that add's support for http caching. It acts just like requests but with a few extra parameters and features. 'Requests' itself is left untouched.
All GET, HEAD and POST requests are cached locally for a period of 4 hours, this can be changed. When the cache expires, conditional headers are added to any new request e.g. "Etag" and "Last-modified". Then if the server returns a 304 Not-Modified response, the cache is used, saving having to re-download the content body.
All of Requests get
, head
, post
and request
functions/methods all get 2 extra optional parameters.
Both these 2 parameters can also be set on a session object too.
max_age
: Age the 'cache' can be before it’s considered stale.raise_for_status
: Boolean that when set toTrue
will callresp.raise_for_status()
for you automatically.
The Requests response objects also gets too new methods.
parse()
: Parse’s “HTML” document into a element tree using HTMLement.xml()
: Parse’s XML document into a element tree.
>>> import urlquick
# Make a simple request to check ip address.
>>> r = urlquick.get('https://httpbin.org/ip')
>>> r.json()
{'ip': '172.69.48.124'}
# Take note of the elapsed time.
>>> r.elapsed
0:00:00.556889
# Now make the same request but notice the much lower elapsed time.
>>> r = urlquick.get('https://httpbin.org/ip')
>>> r.elapsed
0:00:00.000184
# To change the max age for the cache to 1 hour.
>>> r = urlquick.get('https://httpbin.org/ip', max_age=60*60)
# max_age of -1 will disable the caching system.
# max_age of 0 will send conditional headers to check if content needs to be redownloaded.
Urlquick 2 officially supports Python 2.7 & 3.6+.
$ pip install urlquick