La bibliothèque requests sert à envoyer des requêtes HTTP en utilisant Python. Elle est simple et facile à utiliser avec de nombreuses fonctionnalités allant de la transmission de paramètres dans les URL à l’envoi d’en-têtes personnalisés et à la vérification SSL.

En fait, la plupart des développeurs préfèrent utiliser la bibliothèque requests. C’est une bibliothèque HTTP sous licence Apache2, qui permet d’envoyer des requêtes HTTP / 1.1 en utilisant Python. Donc, elle vous permet d’interagir avec le Web, à travers du code Python.
Lorsque nous naviguons sur le Web, à chaque fois que nous cliquons sur un lien, nous envoyons une requête HTTP (Hypertext Transfer Protocol) au serveur de la page.
Supposons que vous utilisez un navigateur pour rechercher une image sur Google. Vous allez envoyer une requête HTTP au serveur, c’est-à-dire l’endroit où l’image est hébergée, et la réponse du serveur est le code d’état du contenu demandé.
Dès réception de la demande, le serveur nous renvoie le bon contenu que nous lui avons demandé. Les deux requêtes HTTP les plus utiles que nous allons apprendre sont les requêtes GET et POST.
Les requêtes sont indispensables dans le traitement des API REST et du Web Scrapping.
La bibliothèque requests ne fait pas partie de la bibliothèque standard Python, vous devez l’installer.
Avant d’installer la bibliothèque requests , n’oublier pas d’utiliser un environnement virtuel. Si vous utilisez pycharm, il sera créé automatiquement avec le nouveau projet.
pip install requests
Sinon essayez avec :
pip3 install requests
Les méthodes HTTP telles que GET
et POST
déterminent l’action que vous essayez d’effectuer lors d’une requête HTTP. La méthode GET
est utilisée pour récupérer des données à partir d’une ressource web.
Faire une requête GET avec la bibliothèque requests
Envoyer une requête HTTP
à l’aide de requests est assez simple. Vous importez le module et ensuite vous envoyez la raquette. En fait, nous avons un objet response
qui stocke certaines informations.
Nous allons envoyer une requête HTTP GET
via la méthode get()
où l’URL est fournie comme argument. Et l’objet de réponse est stocké dans notre variable response
.
L’instance de notre objet Response
classe les données et les stocke dans les attributs appropriés.
import requests
# envoyer une requete
response = requests.get('https://pythonforge.com/')
print(response)
print(response.encoding)
# afficher l'url
print(response.url)
# le temps de la récupération d'une réponse
print(response.elapsed)
# le statut du code
print(response.status_code)
L’exécution du code.
<Response [200]>
UTF-8
https://pythonforge.com/
0:00:05.397625
200
200
indique que la requête a été accepté et UTF-8 est l’encodage utilisé.
Cette instruction renvoie un dictionnaire python contenant une paire clé-valeur des en-têtes d’un serveur.
print(response.headers)
Cette commande affiche le contenu de la réponse du serveur ou du code source statique.
print(response.text)
Exécuter des requêtes POST
Les requêtes POST
font le contraire des requêtes GET
car elles sont destinées à envoyer des données à un serveur plutôt qu’à les récupérer. Cependant, les requêtes POST
peuvent également recevoir des données dans la réponse, tout comme les requêtes GET
.
Dans cet exemple, nous utiliserons httpbin /get, qui est un site Web populaire pour tester différentes opérations HTTP.
import requests
payload = {'user_name': 'utilisateur', 'password': 'mot_de_passe'}
r = requests.post("http://httpbin.org/post", data=payload)
print(r.url)
print(r.text)
L’exécution du code :
http://httpbin.org/post
{
"args": {},
"data": "",
"files": {},
"form": {
"password": "mot_de_passe",
"user_name": "utilisateur"
},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Content-Length": "43",
"Content-Type": "application/x-www-form-urlencoded",
"Host": "httpbin.org",
"User-Agent": "python-requests/2.25.1",
"X-Amzn-Trace-Id": "Root=1-609543bd-61ddb2c579d6f7f316217d9f"
},
"json": null,
"origin": "129.45.109.242",
"url": "http://httpbin.org/post"
}