Détermination d'une nouvelle URL après la redirection avec la bibliothèque de requêtes Python
La bibliothèque Python Requests excelle dans la gestion des requêtes HTTP, mais comprendre son mécanisme de redirection est crucial pour accéder à la page de destination finale. En définissant allow_redirects=True, la bibliothèque suit les requêtes via une chaîne de redirection. Cependant, pour obtenir la nouvelle URL redirigée, vous devez approfondir l'historique de la requête.
L'attribut réponse.history contient un enregistrement de toutes les réponses de redirection rencontrées lors de la requête. Chaque réponse de la liste historique contient son code d'état et l'URL vers laquelle elle est redirigée. Le dernier élément de la liste représente la destination finale, qui est stockée dans réponse.url.
Pour accéder à ces informations, utilisez le code suivant :
import requests response = requests.get(someurl, allow_redirects=True) if response.history: print("Request was redirected") for resp in response.history: print(resp.status_code, resp.url) print("Final destination:") print(response.status_code, response.url) else: print("Request was not redirected")
Considérez l'exemple suivant :
>>> response = requests.get('http://httpbin.org/redirect/3') >>> response.history (<Response [302]>, <Response [302]>, <Response [302]>) >>> for resp in response.history: ... print(resp.status_code, resp.url) ... 302 http://httpbin.org/redirect/3 302 http://httpbin.org/redirect/2 302 http://httpbin.org/redirect/1 >>> print(response.status_code, response.url) 200 http://httpbin.org/get
Cette démonstration présente le processus de suivi de la chaîne de redirection, présentant les codes d'état et les URL de chaque redirection, et finalement affichant la destination finale. En utilisant Response.history, vous pouvez facilement extraire la nouvelle URL après la redirection d'une demande.
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!