Aller au contenu

Scrapers

Collecte automatisée de données web, de la source à la base de données.

Depuis 2022AlternancePersonnelAmis
PythonScrapySeleniumMongoDBNode.jsGitLab

Contexte

Chez Dreamension, la donnée alimentait tout, le catalogue de JV360, les recommandations, les analyses de tendances. La collecter à la main aurait mobilisé une personne à temps plein. J'ai donc construit une chaîne de collecte automatisée, du scraping à la consolidation.

Fonctionnement

Chaque source a sa méthode. Pour Steam, la collecte passe par l'API officielle avec Node.js et Express, avec un passage hebdomadaire pour les nouveautés et les changements de dates de sortie. Xbox, PlayStation et Nintendo n'offrent pas d'API publique complète. J'ai développé des scrapers Python avec Scrapy et Selenium, qui couvrent aussi les bibliothèques des abonnements Game Pass et PlayStation Plus.

Les données convergent dans MongoDB. Un système de slugification unifie les titres d'un même jeu entre plateformes, Assassin's Creed Valhalla devient assassins-creed-valhalla. Les doublons sont fusionnés, les écarts entre sources sont conservés pour arbitrage manuel et chaque fiche garde l'historique de ses modifications.

L'API Twitch complète le dispositif, récupération des identifiants de jeux, analyse des titres streamés et des tendances quotidiennes, hebdomadaires et mensuelles.

L'ensemble tourne en autonomie. Des cron jobs lancent les scrapers chaque jour. En cas d'échec, un webhook Discord notifie l'équipe avec l'explication de l'erreur.

Bilan

Les catalogues Game Pass et PlayStation Plus, environ 450 jeux chacun, sont à jour chaque matin en cinq minutes. La supervision se limite à lire les notifications Discord.

J'applique les mêmes techniques à des besoins personnels ou pour des proches, veille sur des sites, export vers un fichier CSV ou envoi direct des résultats sur Discord.

Retour aux projets