La bibliothèque requests pour interagir avec le Web

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.

bibliothèque requests

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 GETet 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"
}

La bibliothèque requests pour interagir avec le Web

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

Retour en haut