What is the quickest way to HTTP GET in Python if I know the content will be a string? I am searching the documentation for a quick one-liner like:
contents = url.get("http://example.com/foo/bar")
But all I can find using Google are httplib
and urllib
- and I am unable to find a shortcut in those libraries.
Does standard Python 2.5 have a shortcut in some form as above, or should I write a function url_get
?
- I would prefer not to capture the output of shelling out to
wget
orcurl
.
Have a look at httplib2, which - next to a lot of very useful features - provides exactly what you want.
Where content would be the response body (as a string), and resp would contain the status and response headers.
It doesn't come included with a standard python install though (but it only requires standard python), but it's definitely worth checking out.
You could use a library called requests.
This is quite easy. Then you can do like this:
Without further necessary imports this solution works (for me) - also with https:
I often have difficulty grabbing the content when not specifying a "User-Agent" in the header information. Then usually the requests are cancelled with something like:
urllib2.HTTPError: HTTP Error 403: Forbidden
orurllib.error.HTTPError: HTTP Error 403: Forbidden
.How to also send headers
Python 3:
Python 2: