01 / BTS-SIO / Dev_Ops

MarketSpider

Bot de scraping avancé permettant d'être notifié instantanément de bonnes affaires se trouvant sur des sites de vente en ligne tels que Vinted ou Leboncoin

Statut : Private beta Stack : python/sqlite/docker Année : 2024-2026
interface

Le Défi

Construire un outil permettant de trouver des annonces de Lego en ligne ayant un prix avantageux avec un pourcentage de succès de plus de 70%.

La grande majorité des outils existants pour les particuliers se basent au mieux sur des filtres regex basiques et des règles de prix strictes.
Chaque set Lego ayant un prix en constante évolution, il faudrait donc créer un filtre pour chaque produit existant (10 000 +)
J'ai donc implémenté une vérification du prix systématique pour chaque set grâce à l'API de sites de vente populaires et un caching de 24 h pour réduire la latence.

psychology

Pourquoi Lego ?

Ces jouets ont la particularité de fortement gagner en valeur dans le temps, de plus, ils sont souvent sous-évalués par les particuliers.

front_hand

Vérification d'authenticité

Toute annonce détectée est vérifiée par une IA basée sur l'embedding d'images, puis par un LLM, ce qui permet de minimiser la charge de l'utilisateur.

devices

Notifications

L'utilisation d'un bot Discord a été choisie car cette application peut notifier l'utilisateur où qu'il soit.

Architecture Technique

Extrait de code principal illustrant le modèle d'implémentation clé de ce projet.

Python Docker MariaDB Curl OVH
main_sc.py v1.1.2-beta
for filtre in Filtres: 
    #scrap the page
    scraper.scrap(filtre['url'])
    #parse the page
    scraper.Parse(filtre['plateforme'])
    #append the listings to the queue for parallel processing
    scraper.Append_to_Queue(condition=filtre['condition'], platform=filtre['plateforme'])
Close up of a 3D rendered lego brick
01

Ce projet, qui j'ai développé durant 2 ans, m'a permis d'apprendre la création d'un code durable et lisible, tout en me permettant d'apprendre de nombreux concepts.