Connexion à un site Web avec des requêtes Python : cookies et autorisation HTTP
Problème :
Un utilisateur ne peut pas se connecter à un site Web à l'aide du module Requêtes de Python en raison de problèmes de gestion des cookies. Le code utilise request.post mais donne des résultats incorrects.
Solution :
Autorisation HTTP vs Cookies
Autorisation HTTP implique l'envoi des informations d'identification de l'utilisateur directement dans le cadre de l'en-tête HTTP. D'autre part, les cookies permettent au serveur de maintenir l'état en stockant des informations sur l'ordinateur du client.
Utilisation correcte des cookies
Dans le code fourni, l'utilisateur a créé un dictionnaire appelé ck et l'a passé comme argument à request.post. Cependant, ce dictionnaire doit plutôt être transmis en tant que paramètre de données.
Code corrigé
ck = {'inUserName': 'USERNAME/EMAIL', 'inUserPass': 'PASSWORD'} r = requests.post(url, data=ck)
Maintien du statut de connexion
Pour rester connecté pendant une période prolongée, une session web doit être conservée. Ceci peut être réalisé en utilisant une classe request.Session. Par défaut, Requests crée une nouvelle instance de session pour chaque requête.
Code suggéré à l'aide de session
with requests.Session() as session: login_data = {'inUserName': 'USERNAME/EMAIL', 'inUserPass': 'PASSWORD'} response = session.post(url, data=login_data) # Check login status. If successful, make subsequent requests using the same session if response.status_code == 200: safe_response = session.get('protected_url') print(safe_response.text)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!