Utilisation de la bibliothèque Requests pour les requêtes HTTP en Python

Introduction à Requests

Requests est une bibliothèque Python simplifiée pour effectuer des requêtes HTTP, construite sur urllib. Elle offre une interface intuitive pour interagir avec des services web.

Installation

pip install requests

Caractéristiques principales

  • Gestion des connxeions persistantes et des pools de connexions
  • Support des cookies pour maintenir les sessions
  • Encodage atuomatique des réponses
  • Gestion simplifiée des téléchargements et uploads

Différences avec urllib

  • Syntaxe plus concise et intuitive
  • Gestion automatique des encodages
  • Interface orientée objet simplifiée

Méthodes de réponse

Méthode Description
text Contenu HTML décodé selon l'encodage détecté
content Données binaires brutes avec décompression automatique
json() Décodage des réponses JSON
status_code Code d'état HTTP de la réponse
headers En-têtes de la réponse sous forme de dictionnaire

Méthodes HTTP principales

  • GET : Récupération de ressources
  • POST : Envoi de données
  • PUT : Mise à jour complète de ressource
  • PATCH : Mise à jour partielle
  • DELETE : Suppression de ressource

Paramètres de requête

  • params : Paramètres d'URL pour les requêtes GET
  • data : Corps de requête pour POST
  • json : Données sérialisées en JSON
  • headers : En-têtes HTTP personnalisés
  • timeout : Délai maximal d'attente
  • proxies : Configuration des serveurs proxy

Exemple de requête GET

import requests

endpoint = 'https://api.exemple.com/data'
entetes = {'User-Agent': 'MonScript'}
filtres = {'page': 1, 'tri': 'date'}

reponse = requests.get(url=endpoint, headers=entetes, params=filtres)
print(reponse.json())

Gestion des erreurs

try:
    reponse = requests.get('https://api.exemple.com', timeout=3)
    reponse.raise_for_status()
except requests.exceptions.RequestException as erreur:
    print(f"Erreur réseau: {erreur}")

Utilisation de sessions

with requests.Session() as session:
    session.post('https://exemple.com/login', data={'user':'test','pass':'secret'})
    reponse = session.get('https://exemple.com/profil')
    print(reponse.text)

Téléversement de fichier

fichiers = {'fichier': open('rapport.pdf', 'rb')}
reponse = requests.post('https://exemple.com/upload', files=fichiers)
print(reponse.status_code)

Authentification de base

reponse = requests.get(
    'https://api.exemple.com/secured',
    auth=('utilisateur', 'motdepasse')
)

Étiquettes: Python requests HTTP API WebScraping

Publié le 26 juillet à 06h53