Requests est un module python permettant d'utiliser le protocole http de façon ultra simple! Je l'ai découvert en voulant récupérer des données d'une page web au boulot à travers un proxy. Car en effet, il gère vraiment tout ! Les proxy, les cookies, ssl, les uploads multiparts et bien d'autres trucs sympas! Je vous propose dans ce poste, quelques exemples d'utilisations de cette librairie. Pour plus d'informations, il y a la page officiel en français.
Installation
Comme pour tous les modules python, je vous conseille d'utiliser pip
pip install requests
Créer une requête
Tout d'abord, importons le module Requests:
import requests
Maintenant, essayons de récupérer la page de linuxfr.org et l'afficher dans le terminal.
r = requests.get("http://linuxfr.org/")
print(r.text)
Voila, c'est tout simple ! Pour les autres verbes du protocole HTTP, il suffit de faire :
r = requests.put("http://linuxfr.org/")
r = requests.delete("http://linuxfr.org/")
r = requests.patch("http://linuxfr.org/")
r = requests.post("http://linuxfr.org/")
r = requests.head("http://linuxfr.org/")
r = requests.options("http://linuxfr.org/")
Utilisation d'un Proxy
Si vous devez passer par un proxy, comme j'ai du le faire, c'est toujours aussi simple.
proxy = {"http":"http://username:password@proxy:port"}
r = requests.get("http://linuxfr.org/", proxies = proxy)
Lire la réponse
Pour lire la réponse on a déjà vu r.text plus haut. Pour le reste, c'est toujours aussi simple, voici les plus sympas :
r.text #Retourne le contenu en unicode
r.content #Retourne le contenu en bytes
r.json #Retourne le contenu sous forme json
r.headers #Retourne le headers sous forme de dictionnaire
r.status_code #Retourne le status code
Envoyer des données
Pour envoyer des données, toujours aussi simple. Par exemple pour l'envoi des données d'un formulaire :
data = {"first_name":"Richard", "second_name":"Stallman"}
r = requests.post("http://linuxfr.org", data = data)
Pour envoyer une image par multipart, encore plus facile :
file = {'file': open("photo.png", "rb")}
r = requests.post("http://linuxfr.org", files = file)
Bon, voila rapidement la base des fonctions du module requests. Qui, il faut l'avouer , est magique !! Je vous conseille vivement la lecture de cette page, beaucoup plus détaillée.
Référence
fr.python-requests.org
docs.python-requests.org
Ce site est versionné sur GitHub. Vous pouvez corriger des erreurs en vous rendant à cette adresse
Go Top