Obtenir des données à partir d'une URL en Python

Vaibhav Vaibhav 10 octobre 2023
Obtenir des données à partir d'une URL en Python

Une URL ou un Uniform Resource Locator est une adresse Web valide et unique qui pointe vers une ressource sur Internet. Cette ressource peut être un simple fichier texte, un fichier zip, un fichier exe, une vidéo, une image ou une page Web.

Dans le cas d’une page Web, le contenu HTML ou Hypertext Markup Language est récupéré. Cet article montrera comment obtenir ces données HTML ou Hypertext Markup Language à partir d’une URL à l’aide de Python.

Obtenir des données à partir d’une URL à l’aide du module requests en Python

Python possède un module requests qui envoie facilement des requêtes HTTP (Hypertext Transfer Protocol). Ce module peut être utilisé pour récupérer le contenu HTML ou tout contenu à partir d’une URL valide.

Le module requests a une méthode get() que nous pouvons utiliser pour récupérer des données à partir d’une URL. Cette méthode accepte une url comme argument et retourne un objet requests.Response.

Cet objet requests.Response contient des détails sur la réponse du serveur à la requête HTTP envoyée. Si une URL invalide est passée à cette méthode get(), la méthode get() lèvera une exception ConnectionError.

Si vous n’êtes pas sûr de la validité de l’URL, il est fortement recommandé d’utiliser les blocs try et except. Entourez simplement l’appel de la méthode get() dans un bloc try et except. Ceci sera illustré dans l’exemple à venir.

Voyons maintenant comment utiliser cette fonction pour récupérer du contenu HTML ou des données à partir d’une URL valide. Reportez-vous au code suivant pour la même chose.

Pour en savoir plus sur l’objet requests.Response, reportez-vous à la documentation officielle ici.

import requests

try:
    url = "https://www.lipsum.com/feed/html"
    r = requests.get(url)
    print("HTML:\n", r.text)
except:
    print(
        "Invalid URL or some error occured while making the GET request to the specified URL"
    )

Production :

HTML:
...

Notez que ... représente le contenu HTML qui a été récupéré à partir de l’URL. Le contenu HTML n’a pas été affiché dans la sortie ci-dessus car il était trop volumineux.

Si l’URL est défectueuse, le code ci-dessus exécutera le code à l’intérieur du bloc except. Le code suivant décrit son fonctionnement.

import requests

try:
    url = "https://www.thisisafaultyurl.com/faulty/url/"
    r = requests.get(url)
    print("HTML:\n", r.text)
except:
    print(
        "Invalid URL or some error occured while making the GET request to the specified URL"
    )

Production :

Invalid URL or some error occurred while making the GET request to the specified URL

Certaines pages Web ne permettent pas aux requêtes GET de récupérer leur contenu pour des raisons de sécurité. Dans de tels cas, nous pouvons utiliser la méthode post() du module requests.

Comme son nom l’indique, cette méthode envoie des requêtes POST à une URL valide. Cette méthode accepte deux arguments, à savoir url et data.

L’url est l’URL cible et les data accepte un dictionnaire de détails d’en-tête sous forme de paires clé-valeur. Les détails de l’en-tête peuvent être une clé d’API ou d’interface de programmation d’application, un jeton CSRF ou Cross-Site Request Forgery, etc.

Le code Python pour un tel cas serait le suivant.

import requests

try:
    url = "https://www.thisisaurl.com/that/accepts/post/requests/"
    payload = {
        "api-key": "my-api-key",
        # more key-value pairs
    }
    r = requests.post(url, data=payload)
    print("HTML:\n", r.text)
except:
    print(
        "Invalid URL or some error occured while making the POST request to the specified URL"
    )
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

Article connexe - Python URL