Collecter un catalogue de photos depuis une API est un projet Python pratique pour les personnes qui savent déjà écrire de petits programmes. Aidez la rédaction d’une photothèque communautaire à transformer l’aperçu de la première page en un catalogue CSV complet et filtré. Vous créerez un client réutilisable pour une API HTTP locale préparée et protégerez une exportation complète antérieure lorsqu’une requête ultérieure échoue.
Deux laboratoires guidés vous conduisent de la lecture d’une réponse au parcours de tous les curseurs, à la déduplication des ID et à la publication d’un résultat complet. Un défi autonome applique les mêmes méthodes à une autre collection, avec une autre taille de page et une autre sélection. Chaque unité dispose de son propre environnement préparé. Prévoyez environ 110 à 150 minutes ; il s’agit d’une estimation de l’auteur, et non d’une durée mesurée auprès de débutants.
Ce que vous apprendrez
À la fin du cours, vous saurez :
- demander des enregistrements JSON par HTTP, encoder les paramètres de requête, utiliser un délai d’attente et distinguer les réponses réussies des erreurs HTTP ;
- traiter les curseurs de pagination comme des valeurs opaques et continuer jusqu’à ce que
next_cursorvaillenull, même après une page vide ou courte ; - conserver un enregistrement par ID stable de photo, tout en gardant les photos distinctes qui portent le même titre ;
- filtrer exactement par catégorie et orientation, en respectant la casse, et écrire les cinq champs dans un CSV UTF-8 valide, avec uniquement l’en-tête si rien ne correspond ;
- refuser une requête échouée ou un cycle de curseurs répétés avec un code de sortie non nul, en préservant la sortie complète précédente ;
- publier une exportation réussie au moyen d’un fichier temporaire unique dans le répertoire de sortie, sans écraser les fichiers voisins sans rapport ;
- réutiliser le même programme avec une autre URL de collection fournie, une autre taille de page, d’autres filtres et un autre chemin de sortie.
À qui s’adresse ce cours
Ce cours s’adresse aux personnes qui apprennent Python et souhaitent transformer les boucles et collections qu’elles connaissent en un client API utile et un fichier de données réutilisable.
Prérequis : Fonctions, collections, boucles, exceptions et écriture élémentaire de fichiers en Python, ainsi qu’utilisation élémentaire du terminal. Le projet de liste de courses pour un pique-nique, ou une expérience équivalente, constitue une préparation adaptée. Les laboratoires guidés expliquent HTTP, la structure JSON des réponses, l’encodage URL, les curseurs, les règles de guillemets CSV et le remplacement par fichier temporaire.
Environnement d’apprentissage : LabEx fournit un éditeur Python et un terminal dans le navigateur, ainsi qu’une API locale de démonstration originale. Le catalogue utilise des illustrations synthétiques et des crédits fictifs. Les données sources, le code du service et les médias restent inchangés ; seuls les contrôles de panne et de cycle de démonstration explicitement documentés peuvent servir aux exercices d’erreur et de rétablissement. Les libellés et les sorties de l’environnement restent en anglais.
Questions fréquentes
Faut-il un compte externe ou une clé API ?
Non. Les requêtes visent le service local de démonstration préparé. Vous ne contactez aucun fournisseur de photos hébergé, n’extrayez pas de données de sites externes et n’implémentez pas d’authentification.
Vais-je créer un site web ou télécharger des photos ?
Non. Vous écrivez le client Python et exportez les métadonnées des photos en CSV. Les illustrations fournies rendent les enregistrements reconnaissables ; le téléchargement d’images, le dessin et le développement web ne font pas partie de ce projet.
Que se passe-t-il si la collecte s’arrête à mi-parcours ?
Le client doit se terminer en erreur et préserver l’exportation complète existante. Après rétablissement du service de démonstration, vous lancez un nouveau lot fini. Les tentatives automatiques et la reprise des lots interrompus sont hors programme. Le remplacement local d’un fichier ne garantit ni la durabilité après une coupure de courant ni la coordination d’écritures concurrentes.
Comment le défi prolonge-t-il les laboratoires guidés ?
Vous collectez une autre collection avec des paramètres différents et des enregistrements correspondants sur sa dernière page. Les outils, les règles de pagination, le filtrage, le format CSV et la gestion des échecs ont déjà été enseignés.

