Récupération d'URL redirigée à l'aide de la bibliothèque de requêtes Python
Dans le domaine du web scraping et de l'automatisation, il devient souvent nécessaire de suivre les redirections qui se produisent lors de l'accès à une page Web. La bibliothèque Python Requests fournit des fonctionnalités complètes pour gérer les requêtes HTTP, y compris la possibilité de naviguer dans les redirections. Cet article vise à clarifier comment récupérer l'URL redirigée à l'aide de la bibliothèque Requests, en répondant à une requête soulevée dans la communauté.
Problème :
Au sein d'un script, le paramètre allow_redirects = L'indicateur True est défini pour suivre automatiquement les redirections. Cependant, l'utilisateur souhaite déterminer l'URL finale vers laquelle la requête est redirigée. La question se pose : comment peut-on obtenir ces informations par programme ?
Solution :
La solution réside dans l'utilisation de l'attribut réponse.history fourni par Requests. Cet attribut stocke une liste de réponses qui englobent l'ensemble du parcours des redirections menant à la destination finale. Pour accéder à l'URL finale, la propriété Response.url peut être utilisée.
Voici un extrait de code qui illustre le processus :
response = requests.get(someurl) 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")
Démo :
Considérons l'exemple suivant où une requête est adressée à un site Web configuré pour effectuer plusieurs redirections :
import requests response = requests.get('http://httpbin.org/redirect/3') for resp in response.history: print(resp.status_code, resp.url) print(response.status_code, response.url)
Sortie :
302 http://httpbin.org/redirect/3 302 http://httpbin.org/redirect/2 302 http://httpbin.org/redirect/1 200 http://httpbin.org/get
Comme le montre le résultat, le code enregistre avec succès les codes d'état et les URL de chaque redirection, ainsi que la destination finale.
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!