Aller au contenu
Table des matières

LegosTracker

LegosTracker est un projet de données d’AlgoÉTS qui traite les ensembles LEGO comme un marché : le catalogue Rebrickable dit quels sets, pièces et thèmes existent, et un collecteur BrickEconomy ajoute les prix atteints au fil du temps. Il s’adresse aux collectionneurs et aux curieux de science des données qui veulent explorer le catalogue ou essayer des modèles de prix simples sur un set. L’article Économie des boîtes LEGO avec science des données raconte la démarche avec des graphiques.

Carnets et données
PythonJupyterPlaywrightPydanticpandasscikit-learnMatplotlibBeautifulSoup
  • Mis à jour

1. Aperçu

brickeconomy.py lit les numéros de sets dans set_list.txt et pilote une fenêtre Chromium visible avec Playwright. Pour chaque set, il cherche sur BrickEconomy, ouvre la page correspondante et extrait les lignes de graphique intégrées au script de la page : l’historique de valeur va dans <set>_history.csv et, s’il existe, la série à quatre bandes de prix dans <set>_new.csv. Il lit ensuite les panneaux détails, prix, achat rapide, prédictions, faits et analyse de sous-thème dans des modèles Pydantic et les ajoute à lego_sets.csv. brickeconomy.ipynb contient le même code avec les commandes d’installation.

general.ipynb charge les tables Rebrickable de datasets/ (couleurs, inventaires, pièces, sets, thèmes et leurs liens) et trace des décomptes groupés. analyse.ipynb nettoie data/lego_sets.csv et les fichiers data/001-1_*.csv du set 001-1, sorti en 1965, ajuste des régressions linéaire et gradient boosting sur l’historique, les projette jusqu’en 2030, lance une simulation Monte Carlo sur les rendements logarithmiques et trace les gains annuels et les quatre bandes de prix. price.ipynb part d’un fichier personnel mycollection.csv, cherche le prix de détail et la valeur actuelle sur BrickEconomy avec requests et BeautifulSoup, puis écrit updated_mycollection.csv.

2. Cas d’utilisation

Carnets et collecteur Playwright pour étudier les ensembles LEGO avec Rebrickable et l’historique de prix BrickEconomy.

Diagramme de cas d’utilisation de LegosTracker : Collecter les prix des sets; Explorer le catalogue LEGO; Modéliser le prix d’un set; Comparer les prix collectés; Mettre à jour sa collectionLegosTrackerCollecter les prix des setsExplorer le catalogue LEGOModéliser le prix d’un setComparer les prix collectésMettre à jour sa collectionCollectionneur LEGO«système»Site BrickEconomy«système»Exports Rebrickable
Acteurs à gauche (personnes) et à droite (systèmes externes) ; chaque ovale est un cas d’utilisation appuyé par les fichiers cités ci-dessous.
Collecter les prix des sets
Collectionneur LEGOSite BrickEconomy

brickeconomy.py lit set_list.txt, ouvre chaque set sur BrickEconomy avec Playwright Chromium, écrit <set>_history.csv et <set>_new.csv à partir des graphiques et ajoute détails et prix à lego_sets.csv.

Explorer le catalogue LEGO
Collectionneur LEGOExports Rebrickable

general.ipynb charge les tables CSV Rebrickable de datasets/ (couleurs, inventaires, pièces, sets, thèmes) et trace des décomptes, par exemple couleurs transparentes ou opaques.

Modéliser le prix d’un set
Collectionneur LEGO

analyse.ipynb nettoie data/001-1_history.csv, ajuste des régressions linéaire et gradient boosting sur les dates, projette jusqu’en 2030, lance un Monte Carlo sur les rendements et trace les bandes de prix de data/001-1_new.csv.

Comparer les prix collectés
Collectionneur LEGO

analyse.ipynb charge data/lego_sets.csv, retire les symboles monétaires et donne le prix Quick Buy le plus bas et le plus haut ainsi que la moyenne de Pricing.

Mettre à jour sa collection
Collectionneur LEGOSite BrickEconomy

price.ipynb lit mycollection.csv, cherche chaque set sur BrickEconomy avec requests et BeautifulSoup pour le prix de détail et la valeur actuelle, puis écrit updated_mycollection.csv.

2.1. Scénario : Suivre le prix du set 001-1

  1. Installer playwright, pydantic et aiohttp puis lancer playwright install, comme dans brickeconomy.ipynb.
  2. Inscrire les numéros de sets, par exemple 001-1, dans set_list.txt, un par ligne.
  3. Lancer python brickeconomy.py ; une fenêtre Chromium visible cherche sur BrickEconomy et ouvre la page de chaque set.
  4. Déplacer 001-1_history.csv, 001-1_new.csv et lego_sets.csv dans data/, où analyse.ipynb les lit.
  5. Exécuter analyse.ipynb pour tracer l’historique, ajuster les régressions et simuler les prix futurs.

Fichiers consultésREADME.mdbrickeconomy.pybrickeconomy.ipynbanalyse.ipynbgeneral.ipynbprice.ipynbset_list.txtmycollection.csvdata/lego_sets.csvdata/001-1_history.csvdata/001-1_new.csv

3. Démarrage

brickeconomy.ipynb installe les dépendances du collecteur :

pip install playwright asyncio pydantic aiohttp
playwright install
python brickeconomy.py

Le script écrit ses CSV dans le répertoire courant ; analyse.ipynb les lit dans data/. Les carnets ont besoin de pandas, NumPy, Matplotlib, seaborn et scikit-learn (installés par la première cellule d’analyse.ipynb), ainsi que de requests et BeautifulSoup pour price.ipynb :

pip install pandas matplotlib seaborn scikit-learn numpy
jupyter notebook

4. Guide du dépôt

  • brickeconomy.py est le collecteur Playwright des pages de sets BrickEconomy.
  • set_list.txt liste les numéros de sets à collecter (001-1 à 0016-1 et 002-1).
  • data/ contient les résultats collectés : lego_sets.csv, un _history.csv par set et 001-1_new.csv.
  • datasets/ contient les exports Rebrickable en CSV et .csv.gz ; le README décrit leurs colonnes et images/downloads_schema_v3.webp montre le schéma.
  • general.ipynb explore le catalogue Rebrickable.
  • analyse.ipynb nettoie les prix collectés et modélise l’historique du set 001-1.
  • price.ipynb met à jour la valeur des sets de mycollection.csv.

5. Fonctionnalités

  • collecter l’historique de valeur, les bandes de prix et les panneaux BrickEconomy d’une liste de sets ;
  • explorer les couleurs, inventaires, pièces, sets et thèmes de Rebrickable ;
  • comparer les prix collectés entre sets (plus bas, plus haut, moyenne) ;
  • ajuster des régressions linéaire et gradient boosting sur l’historique d’un set et les projeter ;
  • simuler les prix futurs avec un modèle Monte Carlo sur les rendements logarithmiques ;
  • mettre à jour la valeur actuelle d’une collection personnelle.

6. Limites

  • Aucun fichier de dépendances : elles viennent des cellules !pip install des carnets.
  • Le collecteur dépend de la structure des pages et des sélecteurs CSS de BrickEconomy, ouvre un navigateur visible et s’arrête sur une erreur quand une recherche ne renvoie aucun lien.
  • Les fichiers produits sont écrits dans le répertoire courant, pas dans data/ : il faut les déplacer avant d’exécuter analyse.ipynb.
  • Les données collectées couvrent neuf sets ; les modèles de prix portent sur un seul set (001-1) et servent d’illustration, pas de prévision.
  • price.ipynb ne lit que le premier tableau de la page de recherche BrickEconomy et définit une constante TAX_RATE qu’il n’utilise jamais.
  • Les exports Rebrickable sont un instantané daté ; aucun script ne les met à jour.

7. Sources

8. Pipeline CI/CD

Aucun pipeline CI/CD dans le dépôt. Le code se construit et se lance à la main, comme décrit plus haut.

Généré à partir du code au commit c24d7e7.

9. Schéma de déploiement

Mermaid Schéma de déploiement
flowchart LR
  repo[("Dépôt GitHub")]
  local["Poste local"]
  repo -->|"cloner et lancer"| local

Le dépôt ne contient ni Dockerfile, ni fichier Compose, ni configuration d’hébergement : le code s’exécute sur le poste qui le clone.

10. Dépendances externes

Le dépôt ne déclare aucun paquet externe : aucun manifeste (pyproject.toml, requirements.txt, package.json, pom.xml…) n’y figure.

11. Glossaire

Dépôt

Les fichiers source, la configuration et l’historique versionné d’un projet.

README

Le document d’entrée du dépôt, qui présente généralement son rôle et son installation.

Dépendance

Une bibliothèque, un outil ou un service nécessaire à la compilation ou à l’exécution d’un composant.

HTTP

Un protocole de requête et réponse utilisé par les navigateurs et services web. Une requête comprend une méthode, un chemin, des en-têtes et parfois un corps.

Port publié

Un port de l’hôte associé au port d’un service dans un conteneur. Sa publication peut rendre le service accessible hors du réseau des conteneurs.

Interface en ligne de commande

Une interface textuelle où les commandes et arguments choisissent les opérations. Les codes de retour permettent aux scripts de détecter un succès ou un échec.

12. Références

  1. AlgoETS. (2026, 5 novembre). LegosTracker. [Software repository] github.com.
  2. AlgoETS. (2026, 5 novembre). README. [Source file or documentation] github.com.
  3. AlgoETS. (2026, 5 novembre). brickeconomy.py. [Source file or documentation] github.com.
  4. AlgoETS. (2026, 5 novembre). analyse.ipynb. [Source file or documentation] github.com.
  5. AlgoETS. (2026, 5 novembre). general.ipynb. [Source file or documentation] github.com.
  6. AlgoETS. (2026, 5 novembre). price.ipynb. [Source file or documentation] github.com.
  7. hevalhazalkurt. (2026, 5 novembre). exploring_the_data_of_LEGO_history. [Software repository] github.com.

Les sources sans date de publication indiquent la date de leur dernière vérification, le 5 novembre 2026. Les liens des fichiers conservent la révision inspectée lorsqu’elle est disponible.