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.