Python Accès Internet en utilisant Urllib.Request et urlopen()
⚡ Résumé intelligent
urllib est la norme Python module d'accès aux données Internet, permettant aux programmes d'ouvrir URLs et récupérer du contenu HTML, JSON ou binaire. La fonction urllib.request.urlopen() se connecte à une adresse web et lit directement la réponse du serveur. Python.

Les sections ci-dessous expliquent ce qu'est urllib et comment ouvrir un URL et lire son code HTML, et savoir comment gérer les erreurs, télécharger des fichiers et choisir entre la bibliothèque urllib et la bibliothèque requests.
Qu’est-ce que l’urllib ?
urllib est un Python module pouvant être utilisé pour l'ouverture URLIl définit des fonctions et des classes pour faciliter la mise en œuvre. URL actions.
Avec PythonVous pouvez également accéder à des données sur Internet, telles que des fichiers XML, HTML et JSON, et les récupérer, puis les manipuler directement. Dans les sections suivantes, nous verrons comment récupérer des données sur le Web. Par exemple, nous utilisons ici… Guru99 vidéo URL, accédez-y en utilisant Pythonet imprimer le fichier HTML de ceci URL.
Le paquet urllib regroupe plusieurs modules : urllib.request pour l'ouverture URLs, urllib.error pour les exceptions que les requêtes peuvent générer, urllib.parse pour la construction et l'analyse URLs, et urllib.robotparser pour la lecture des fichiers robots.txt.
Comment ouvrir URL utilisation d'Urllib
Avant d'exécuter le code pour se connecter aux données Internet, nous devons importer le URL module de bibliothèque, ou « urllib ».
- Importer l'URLlib
- Définissez votre fonction principale
- Déclarez la variable webUrl
- Appelez ensuite la fonction urlopen de la bibliothèque urllib
- Le URL nous ouvrons le Guru99 tutoriels sur YouTube
- Ensuite, nous imprimons le code de résultat
- Le code de résultat est récupéré en appelant la fonction getcode sur la variable webUrl que nous avons créée.
- Nous convertissons cela en une chaîne de caractères, afin qu'elle puisse être concaténée avec notre chaîne « code de résultat ».
- Il s'agira d'un code HTTP standard « 200 », indiquant que la requête HTTP a été traitée avec succès.
Comment obtenir un fichier HTML à partir d'un URL in Python
Vous pouvez également lire le fichier HTML en utilisant la fonction read() dans PythonLorsque vous exécuterez le code, le fichier HTML apparaîtra dans la console.
- Appelez la fonction read() sur la variable webUrl
- La méthode read() vous permet de lire le contenu des fichiers de données
- Lisez l'intégralité du contenu de URL dans une variable appelée données
- Exécutez le code et il affichera les données au format HTML.
Voici le code complet:
Python 2 Exemple
# # read the data from the URL and print it # import urllib2 def main(): # open a connection to a URL using urllib2 webUrl = urllib2.urlopen("https://www.youtube.com/user/guru99com") #get the result code and print it print "result code: " + str(webUrl.getcode()) # read the data from the URL and print it data = webUrl.read() print data if __name__ == "__main__": main()
Python 3 Exemple
# # read the data from the URL and print it # import urllib.request # open a connection to a URL using urllib webUrl = urllib.request.urlopen('https://www.youtube.com/user/guru99com') #get the result code and print it print ("result code: " + str(webUrl.getcode())) # read the data from the URL and print it data = webUrl.read() print (data)
Comment gérer les erreurs urllib : URLErreur et erreur HTTP
Une requête n'aboutit pas toujours. En cas d'erreur, urllib lève une exception au lieu de renvoyer des données ; il est donc important de gérer ces erreurs. Le module urllib.error définit deux classes d'exceptions principales.
- Erreur HTTP Cette exception est levée lorsque le serveur renvoie un code d'état d'erreur, tel que 404 Not Found ou 500 Internal Server Error. Elle contient le code d'état et le corps de la réponse.
- URLErreur Une exception est levée lorsque le serveur est totalement inaccessible, par exemple en raison d'un nom de domaine incorrect ou d'une absence de connexion Internet. Elle comporte un attribut de raison expliquant l'échec.
Parce que HTTPError est une sous-classe de URLEn cas d'erreur, il est impératif de toujours intercepter d'abord les erreurs HTTPError afin que chaque type d'erreur soit traité séparément :
from urllib.request import urlopen from urllib.error import HTTPError, URLError try: response = urlopen("https://www.guru99.com/no-such-page.html") data = response.read() except HTTPError as error: print("HTTP error:", error.code) except URLError as error: print("URL error:", error.reason)
La gestion de ces exceptions empêche votre programme de planter et vous permet de consigner le problème, de réessayer la requête ou de revenir aux données mises en cache.
Comment télécharger un fichier depuis un URL Utilisation d'urllib
la lecture d'un URL Le chargement en mémoire convient aux petites pages, mais pour les images, les documents PDF ou les ensembles de données, il est plus simple d'enregistrer la réponse directement sur le disque. Le module urllib.request propose deux méthodes simples pour ce faire.
La fonction urlretrieve() télécharge un URL directement dans un fichier local en une seule ligne :
from urllib.request import urlretrieve urlretrieve("https://www.python.org/static/img/python-logo.png", "logo.png")
Pour plus de contrôle, ouvrez le URL et écrivez vous-même les octets. Ouvrez le fichier local en mode binaire car urlopen() renvoie des octets et non du texte :
from urllib.request import urlopen with urlopen("https://example.com/data.zip") as response: with open("data.zip", "wb") as file: file.write(response.read())
Pour les fichiers très volumineux, lisez et écrivez en boucle en utilisant response.read(8192) afin que le fichier entier ne soit jamais chargé en mémoire en une seule fois.
urllib contre la bibliothèque requests dans Python
urllib fait partie de Python La bibliothèque standard est intégrée, ce qui permet son utilisation partout sans installation. La bibliothèque tierce requests n'est pas incluse, mais de nombreux développeurs la préfèrent pour les opérations HTTP quotidiennes en raison de sa syntaxe plus concise et plus lisible.
Les principales différences sont les suivantes:
- Installation: urllib est fourni avec Python, tandis que requests doit être installé avec pip.
- Décodage: urllib renvoie des octets bruts que vous décodez vous-même, tandis que requests décode automatiquement le texte et le JSON.
- Confort : requests gère les sessions, les cookies et les en-têtes personnalisés avec moins de code.
- Dépendances urllib n'en ajoute aucun, tandis que requests s'appuie sur urllib3 en interne.
Choisissez urllib si vous souhaitez une solution sans dépendances ou pour une requête ponctuelle. Pour les projets plus importants nécessitant une authentification, des sessions ou des appels API fréquents, privilégiez requests. Les deux bibliothèques envoient les mêmes requêtes HTTP sous-jacentes ; le choix se résume donc à privilégier la simplicité d'utilisation ou à réduire le nombre de dépendances.


