Module urllib.request Python

Le module urllib.request vous permet de récupérer des données depuis des URL en utilisant la bibliothèque standard Python.

from urllib import request

Pour beaucoup de projets, des bibliothèques tierces comme Requests sont plus pratiques. Utilisez urllib.request lorsque vous voulez une solution reposant uniquement sur la bibliothèque standard.

Ouvrir une URL

urlopen renvoie un objet de réponse.

from urllib import request

response = request.urlopen('data:text/plain,Hello%20Python')
print(response.headers.get_content_type())
text/plain

Lire les données de réponse

Le corps de la réponse est renvoyé sous forme d’octets.

from urllib import request

response = request.urlopen('data:text/plain,Hello%20Python')
content = response.read()
print(type(content).__name__)
print(content.decode('utf-8'))
bytes
Hello Python

Ajouter un délai d’attente

Lorsque vous ouvrez de vraies URL réseau, définissez un délai d’attente pour que votre programme n’attende pas indéfiniment.

from urllib import request

response = request.urlopen('data:text/plain,ok', timeout=5)
print(response.read().decode('utf-8'))
ok

WARNING

Les appels réseau peuvent échouer pour de nombreuses raisons. Gérez des exceptions comme urllib.error.URLError et soyez prudent lorsque vous récupérez des URL non fiables.

Liens pertinents