Faire des requêtes HTTP en Python

14 janvier 2023

Imaginons que nous voulions faire une requête vers l’API publique de GitHub, sur l’URL suivante : https://api.github.com/users/<user>/repos

Dans un premier temps on peut tester avec curl pour voir à quoi ressemble le résultat :

curl https://api.github.com/users/nikaro/repos

Pour cet exemple on obtient du JSON en réponse, bonne nouvelle Python sait travailler nativement avec JSON.

urllib

Si on veut utiliser la bibliothèque standard de Python, on peut utiliser urllib et json.

import json
import urllib.request

# on fait la requête HTTP
response = urllib.request.urlopen("https://api.github.com/users/nikaro/repos")
# on lit le contenu de la réponse
content_bytes = response.read()
# on décode la réponse au format binaire vers texte
content_string = content_bin.decode()
# on parse le texte en tant que JSON afin de "convertir" en objet Python
data = json.loads(content_text)

print(data[0]["html_url"])

httpx

Si on veut se faciliter la vie, surtout quand on commence à faire des choses plus compliqués, on peut utiliser la bibliothèque tierce HTTPX.

import httpx

response = httpx.get("https://api.github.com/users/nikaro/repos")
data = response.json()

Commenter
Articles de blogs que je lis

Censure DNS du domaine d'Uptobox par Orange

Depuis ce matin, Orange censure le service Uptobox (https://uptobox.com/) via un résolveur DNS (resolveur-dns.html) menteur. Avec quelques particularités techniques…
Blog de Stéphane Bortzmeyer · 15 mai 2023

Considérations sur le talent, le génie, le travail et un jeu vidéo que je vous recommande

Considérations sur le talent, le génie, le travail et un jeu vidéo que je vous recommande À Épinal, j’ai eu la grande chance d’échanger avec Denis Bajram, auteur de la BD culte Universal War 1. La conversation s’est très vite portée sur la notion de génie, un sujet sur lequel je méditais justement depuis longtemps. Dans ma vision personnelle, le talent n’est finalement qu’une facilité, un état de départ. Prenez deux individus sans la moindre expérience et demandez-leur de chanter, dessiner, …
Ploum.net · 2 juin 2023

#58 : Remarques sur la mobilisation contre TotalEnergies

Vendredi, TotalEnergies s’est retrouvée une nouvelle fois sous le feu des critiques concernant sa stratégie climatique - et donc sa stratégie d’entreprise tout court - à l’occasion de son assemblée générale (AG) annuelle. Une première chose mérite d’être soulignée pour commencer.
Nourritures terrestres · 29 mai 2023

Anti­vols en voyage à vélo

On part à trois en été sur les pistes bien peuplées de la Loire. On va avoir besoin de lais­ser les vélos dehors la nuit au camping à côté de la tente. Peu de chances que quelqu’un ramène une disqueuse ou s’es­crime long­temps avec de gros outils, mais pas non plus de point fixe pour […]
Carnet de notes · 2 juin 2023