Installation et configuration de la bibliothèque requests
La bibliothèque requests n'est pas incluse dans la distribution standard de Python, vous devez donc l'installer séparément. Exécutez la commande suivante dans votre terminal :
pip install requests
Pour vérifier que l'installation a réussi, exécutez :
import requests
print(requests.__version__)
Que sont les requêtes HTTP et pourquoi utiliser la bibliothèque requests
HTTP (HyperText Transfer Protocol) est un protocole de transfert de données entre un client et un serveur. requests est une bibliothèque Python externe qui simplifie considérablement l'envoi de requêtes HTTP par rapport aux modules intégrés urllib.
Principaux avantages de requests
- Simplicité d'utilisation et lisibilité du code
- Prise en charge de toutes les méthodes HTTP (GET, POST, PUT, DELETE, PATCH)
- Gestion automatique des données JSON
- Prise en charge intégrée des cookies et des sessions
- Configuration flexible des en-têtes et des paramètres
- Gestion des erreurs et des exceptions
- Prise en charge des serveurs proxy et des certificats SSL
Les principales méthodes HTTP avec des exemples pratiques
Requêtes GET : récupération de données
La requête GET est utilisée pour récupérer des données depuis un serveur sans les modifier.
import requests
# Requête GET simple
response = requests.get('https://api.github.com')
print(response.status_code) # 200
print(response.text) # Contenu de la réponse
Transmission de paramètres dans une requête GET
# Transmission de paramètres via un dictionnaire
params = {
'q': 'python',
'sort': 'stars',
'order': 'desc',
'page': 1
}
response = requests.get('https://api.github.com/search/repositories', params=params)
print(response.url) # Vérifions l'URL finale avec les paramètres
Requêtes POST : envoi de données
La requête POST est utilisée pour envoyer des données vers un serveur et créer de nouvelles ressources.
# Requête POST avec des données de formulaire
data = {
'username': 'test_user',
'password': 'secure_password',
'email': 'test@example.com'
}
response = requests.post('https://httpbin.org/post', data=data)
print(response.json())
Requête POST avec des données JSON
# Envoi de données JSON
json_data = {
'title': 'Nouvel article',
'body': 'Contenu de l\'article',
'userId': 1
}
response = requests.post(
'https://jsonplaceholder.typicode.com/posts',
json=json_data
)
print(response.json())
Requêtes PUT : mise à jour de données
La requête PUT est utilisée pour mettre à jour complètement des ressources existantes.
update_data = {
'id': 1,
'title': 'Titre mis à jour',
'body': 'Nouveau contenu',
'userId': 1
}
response = requests.put(
'https://jsonplaceholder.typicode.com/posts/1',
json=update_data
)
print(f"Statut : {response.status_code}")
print(response.json())
Requêtes PATCH : mise à jour partielle
PATCH est utilisé pour mettre à jour partiellement une ressource.
patch_data = {'title': 'Titre partiellement mis à jour'}
response = requests.patch(
'https://jsonplaceholder.typicode.com/posts/1',
json=patch_data
)
print(response.json())
Requêtes DELETE : suppression de données
La requête DELETE est utilisée pour supprimer des ressources sur le serveur.
response = requests.delete('https://jsonplaceholder.typicode.com/posts/1')
print(f"Statut de suppression : {response.status_code}")
Gestion des en-têtes HTTP
Les en-têtes contiennent des métadonnées sur la requête et permettent de transmettre des informations supplémentaires au serveur.
headers = {
'User-Agent': 'Mozilla