[[python_wiki:requests]]

Requests

General Information

The requests library is a http library that allows you to interact with web servers via Python.


Sites to Practice Using Requests Against:


Checklist

  • Python 2 or 3

Install

Requests can be installed via pip

pip install requests

Import

import requests

Using Requests

Requests supports the following http request types.

my_site = "http://httpbin.org/"
 
# GET
response = requests.get(my_site + "get")
 
# POST
response = requests.post(my_site + "post")
 
# PUT
response = requests.put(my_site + "put")
 
# DELETE
response = requests.delete(my_site + "delete")
 
##-- head and options responses are not implemented in the httpbin.org website --##
# HEAD
response = requests.head(my_site)
 
# OPTIONS
response = requests.options(my_site)

Using the GET request and handling the response data.


Example: Retrieve the latest XKCD Comic Info ( More Info: https://xkcd.com/json.html)

#!/usr/bin/python3                                                                         
 
import requests
 
# XKCD Current Comic JSON API
my_site = "https://xkcd.com/info.0.json"
 
# Retrieve using GET
print("Sending GET to: " + my_site)
response = requests.get(my_site)
 
# Extract the JSON object from the response
data = response.json()
 
# Show http status code on GET
print("Status code is:" + str(response.status_code))
 
# Show Certain fields from the JSON object
print("\n-- The Current XKCD Comic --")
print("Comic Title: " + data['title'])
print("Comic Text: " + data['alt'])
print("Comic Date: " + data['year'] + "-" + data['month'] + "-" + data['day'])
print("Comic Image URL: " + data['img'])


Output from above example

Sending GET to: https://xkcd.com/info.0.json
Status code is:200
 
-- The Current XKCD Comic --
Comic Title: Pie Charts
Comic Text: If you can't get your graphing tool to do the shading, just add some clip art of cosmologists discussing the unusual curvature of space in the area.
Comic Date: 2018-8-10
Comic Image URL: https://imgs.xkcd.com/comics/pie_charts.png

POST

Send data in a POST request.


Example: Use the httpbin.org site to delay 5 seconds (will replace with a more interesting example later)

#!/usr/bin/python
 
import requests
 
# Post the request (this will delay/sleep for 5 seconds)
response = requests.post("http://httpbin.org/delay/5")
 
# Extract the JSON object from the response
data = response.json()
 
# Show http status code
print("Status code is:" + str(response.status_code))
 
print("Returned response is:")
print(data)

  • python_wiki/requests.txt
  • Last modified: 2019/05/26 03:50
  • (external edit)