1. Introduction à la bibliothèque Python Requests
Requests est une bibliothèque Python HTTP qui fournit une fonctionnalité simple pour traiter les requêtes/réponses http dans votre application Web. La bibliothèque est développée en python.
2. Caractéristiques de la bibliothèque Request
Les fonctionnalités de la bibliothèque Request sont décrites ci-dessous:
- Request: la bibliothèque des requêtes python propose des méthodes faciles à utiliser pour gérer les requêtes HTTP. Passer des paramètres et gérer le type de requête comme GET, POST, PUT, DELETE, etc. est très facile.
- Response: vous pouvez obtenir la réponse dans le format dont vous avez besoin et ceux pris en charge sont le format texte, la réponse binaire, la réponse json et la réponse brute.
- Headers: la bibliothèque vous permet de lire, de mettre à jour ou d'envoyer de nouveaux en-têtes selon vos besoins.
- Timeouts: les délais d'attente peuvent être facilement ajoutés à l'URL que vous demandez à l'aide de la bibliothèque de requêtes python. Il se trouve que vous utilisez une URL tierce et que vous attendez une réponse. C'est toujours une bonne pratique de donner un délai d'attente sur l'URL car nous pourrions vouloir que l'URL réponde dans ce délai avec une réponse ou une erreur qui arrive en raison du délai d'attente. Si vous ne le faites pas, l'un ou l'autre peut attendre indéfiniment cette demande.
- Error handling (gestion des erreurs): le module requests prend en charge la gestion des erreurs et certaines d'entre elles sont les erreurs de connexion, les erreurs de délai d'attente, les erreurs TooManyRedirects, les erreurs Response.raise_for_status, etc.
- Cookies: la bibliothèque vous permet de lire, d'écrire et de mettre à jour l'URL demandée.
- Sessions: pour maintenir les données, vous avez besoin entre les demandes dont vous avez besoin de sessions. Ainsi, si le même hôte est appelé encore et encore, vous pouvez réutiliser la connexion TCP, ce qui améliorera les performances.
- SSL certificates: le certificat SSL est une fonctionnalité de sécurité fournie avec des URL sécurisées. Lorsque vous utilisez des requêtes, il vérifie également les certificats SSL pour l'URL https donnée. La vérification SSL est activée par défaut dans la bibliothèque des requêtes et génère une erreur si le certificat n'est pas présent.
- Authentication: l'authentification HTTP du côté serveur demandant certaines informations d'authentification comme le nom d'utilisateur, le mot de passe lorsque le client demande une URL. C'est une sécurité supplémentaire pour la requête et la réponse échangées entre le client et le serveur.
3. Avantages de la bibliothèque Request Python
Voici les avantages de l'utilisation de Python Requests:
- Facile à utiliser et à récupérer les données à partir de l'URL donnée.
- La bibliothèque requests peut être utilisée pour récupérer les données du site Web.
- En utilisant la bibliothèque requests, vous pouvez obtenir, publier, supprimer, mettre à jour les données de l'URL donnée.
- La gestion des cookies et des sessions sont très simple.
- La sécurité est également prise en charge à l'aide du support du module d'authentification.
4. Installation de la bibliothèque requests
Pour installer la bibliothèque requests, rien de plus simple! Il suffit de lancer l'invite de commande cmd et taper:
1 |
pip install requests |
pour avoir des informations sur la bibliothèque requests comme: name, version, home page, author..., il suffit de tapez la commande:
1 |
pip show requests |
5. usage de la bibliothèque Python requests
Nous allons commencer par un simple exemple permettant de récupérer la page: https://fr.wikipedia.org/ à l'aide de la méthode get()
1 2 3 4 5 6 |
# importation de la bibliothèque import requests # récupération du contenu à l'aide de la méthode get() r = requests.get("https://fr.wikipedia.org/") print(r.text) |
En exécutant le code ci-dessus, on obtient le contenu html de la page wikipedia au format texte. Cependant l'objet requests ne possède pas uniquement la méthode get(), mais un ensemble de méthodes permettant de récupérer, supprimer et envoyer des données...
1 2 3 4 5 6 |
r = requests.put("https://fr.wikipedia.org/") r = requests.delete("https://fr.wikipedia.org/") r = requests.patch("https://fr.wikipedia.org/") r = requests.post("https://fr.wikipedia.org/") r = requests.head("https://fr.wikipedia.org/") r = requests.options("https://fr.wikipedia.org/") |
Il faut noter qu'il n' y a pas seulement l'attribut text pour la méthode get(), mais en réalité un ensemble d'attributs pour lire le contenu entier, le header, obtenir le status de connexion...
1 2 3 4 5 |
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 |
6 - Envoie des données et connexion à un serveur avec la méthode post()
Pour envoyer des données avec le module requests rien de plus simple, il suffit de regrouper les données à envoyer dans un dictionnaire et d'utiliser la méthode post():
Syntaxe d'authentification
1 2 3 |
url = "adresse_du_serveur" data = {"login":"your_username", "password":"your_password"} r = requests.post(url, data = data) |
Pour bien comprendre le mécanisme d'authentification avec le module requests nous allons traiter un exemple réel sur notre propre site web: https://www.tresfacile.net:
Essayons alors de jouer avec l'utilisateur virtuel suivant:
Identifiant : 'robert19'
Prénom : 'Robert'
Nom : 'Laurent'
Email : 'robert19@gmail.com'
Password : 'robert2022@@'
On crée ensuite le dictionnaire des données d'identification et session à l'aide de la méthode Session() et ensuite une redirectionvers la page profile pour afficher les informations du profile utilisateur:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import requests # url d'authentification & url du tableau de bord utilisateur wp_login = 'https://www.tresfacile.net//wp-login.php' wp_profile = 'https://www.tresfacile.net/dashboard/' # identifiants de connexion username = 'robert19' password = 'robert2022@@' # creation d'une session utilisateur with requests.Session() as s: datas={ 'log':username, 'pwd':password , 'redirect_to':wp_profile } s.post(wp_login , data=datas) resp = s.get(wp_profile) print(resp.text) |
Et maintenant en effectuant une recherche sur le contenu du texte imprimé à l'écran, on retrouve les informations de l'utilisateur:
1 2 3 4 5 6 7 8 9 |
<p class="tml-dashboard-greeting">Bonjour, Robert Laurent</p> <span class='username'>robert19</span></a></li> <li id='wp-admin-bar-edit-profile'> <a class='ab-item' href='https://www.tresfacile.net/wp-admin/profile.php'> Modifier le profil</a></li> <li id='wp-admin-bar-logout'> <a class='ab-item' href='https://www.tresfacile.net/logout/?_wpnonce=383f85e7da'> Se déconnecter </a></li></ul></div></li></ul> |
Younes Derfoufi
CRMEF OUJDA
1 thought on “La bibliothèque Python Requests”