Comment récupérer des URL redirigées à l'aide de la bibliothèque Python Requests ?

Susan Sarandon
Libérer: 2024-11-16 11:38:03
original
266 Les gens l'ont consulté

How to retrieve redirected URLs using the Python Requests library?

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")
Copier après la connexion

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)
Copier après la connexion

Sortie :

302 http://httpbin.org/redirect/3
302 http://httpbin.org/redirect/2
302 http://httpbin.org/redirect/1
200 http://httpbin.org/get
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal