Accéder aux Données Web avec urllib de Python : Guide Pratique
Accéder aux Données Web avec urllib de Python
Qu'est-ce que urllib ?
urllib est un module Python intégré qui simplifie l'ouverture d'URLs et la gestion de ressources web. Il offre fonctions et classes pour récupérer, parser et traiter URLs, permettant aux développeurs de récupérer XML, HTML, JSON et autres formats de données directement depuis internet.
Dans ce tutoriel nous démontrerons comment utiliser urllib pour :
- Ouvrir une URL et vérifier le code de réponse HTTP.
- Lire le contenu HTML complet d'une page web.
Ouvrir une URL avec urllib
Avant d'exécuter toute requête réseau, importez le module urllib approprié :
import urllib.request # Python 3
# import urllib2 # Python 2 (déprécié dans versions récentes)
Définissez votre routine principale, spécifiez l'URL cible, et ouvrez une connexion avec urlopen(). Nous utiliserons la chaîne YouTube Guru99 comme exemple :
def main():
url = urllib.request.urlopen("https://www.youtube.com/user/guru99com")
print("code résultat : " + str(url.getcode()))
data = url.read()
print(data.decode('utf-8'))
if __name__ == "__main__":
main()
La méthode getcode() retourne le code de statut HTTP (ex: 200 pour succès). La méthode read() récupère les octets bruts de la page, qu'on décode en UTF-8 pour lisibilité.
Lire le Contenu HTML
Une fois l'URL ouverte, vous pouvez extraire le HTML en appelant simplement read(). Les octets résultants représentent le document HTML complet, qu'on peut ensuite parser avec des bibliothèques comme BeautifulSoup ou afficher directement.
Ci-dessous un exemple visuel de la sortie HTML décodée dans la console :

Exemples de Code Complets
Pour référence, les sections suivantes fournissent des scripts complets pour environnements Python 2 et Python 3.
Exemple Python 2
import urllib2
def main():
web_url = urllib2.urlopen("https://www.youtube.com/user/guru99com")
print("code résultat : " + str(web_url.getcode()))
data = web_url.read()
print(data)
if __name__ == "__main__":
main()
Exemple Python 3
import urllib.request
web_url = urllib.request.urlopen('https://www.youtube.com/user/guru99com')
print('code résultat : ' + str(web_url.getcode()))
print(web_url.read().decode('utf-8'))
Python
- Naviguer dans le SaaS et le cloud : pourquoi une gestion méticuleuse des données est cruciale
- Mots-clés et identifiants Python : Maîtriser les mots réservés et les conventions de nommage
- Instructions, indentation et commentaires en Python : Guide clair
- Variables, constantes et littéraux en Python – Guide complet
- Maîtriser les types de données Python : Guide pratique
- Maîtriser la conversion et le transtypage de types en Python : Guide complet
- Maîtriser les E/S et l'importation de modules en Python : Guide pratique
- Comprendre les variables globales, locales et non locales en Python
- Maîtriser les opérations sur les répertoires et fichiers en Python