Files
scrap/INDEX.md
2026-01-13 19:49:04 +01:00

5.5 KiB
Executable File

📑 PriceWatch - Index des fichiers

Version : 0.1.0 | Date : 2026-01-13

Ce fichier liste tous les fichiers du projet avec leur description.


📚 Documentation (7 fichiers)

Fichier Description
README.md Documentation principale du projet (installation, usage, architecture)
QUICKSTART.md Guide de démarrage rapide (commandes essentielles)
CLAUDE.md Guide pour futures instances de Claude Code
TODO.md Roadmap du projet (Phases 1-5)
CHANGELOG.md Historique des modifications (v0.1.0)
DELIVERY_SUMMARY.md Récapitulatif complet de livraison Phase 1
TEST_FILES_README.md Guide des fichiers de test et maintenance sélecteurs
INDEX.md Ce fichier - Index de tous les fichiers du projet

⚙️ Configuration (4 fichiers)

Fichier Description
pyproject.toml Configuration package Python + dépendances
scrap_url.yaml Configuration de scraping (URLs + options)
.gitignore Fichiers à ignorer par Git
PROJECT_SPEC.md Spécifications détaillées originales (français)

🧪 Tests (3 fichiers)

Fichier Description
test_amazon.json Config de test Amazon (URLs, sélecteurs, valeurs attendues)
test_cdiscount.json Config de test Cdiscount (URLs, sélecteurs, valeurs attendues)
test_selectors.py Script de validation des sélecteurs

🐍 Code source (18 modules Python)

Core (4 modules)

pricewatch/app/core/
├── schema.py       Modèle ProductSnapshot (Pydantic) + validation
├── logging.py      Système de logs colorés
├── io.py           Lecture YAML / Écriture JSON + debug files
└── registry.py     Détection automatique stores

Scraping (2 modules)

pricewatch/app/scraping/
├── http_fetch.py   Récupération HTTP avec User-Agent rotation
└── pw_fetch.py     Récupération Playwright (anti-bot)

Stores (8 modules)

pricewatch/app/stores/
├── base.py                    Classe abstraite BaseStore
├── amazon/
│   ├── store.py              AmazonStore (match, parse, etc.)
│   ├── selectors.yml         Sélecteurs CSS/XPath Amazon
│   └── fixtures/             Fixtures HTML (vide)
└── cdiscount/
    ├── store.py              CdiscountStore (match, parse, etc.)
    ├── selectors.yml         Sélecteurs CSS/XPath Cdiscount
    └── fixtures/             Fixtures HTML (vide)

CLI (1 module)

pricewatch/app/cli/
└── main.py         CLI Typer avec 5 commandes

Tests (structure)

tests/
├── core/           Tests core (à implémenter)
├── scraping/       Tests scraping (à implémenter)
└── stores/
    ├── amazon/     Tests Amazon (à implémenter)
    └── cdiscount/  Tests Cdiscount (à implémenter)

📦 Dossiers générés

Dossier Description
venv/ Environnement virtuel Python
scraped/ HTML et screenshots de debug
pricewatch.egg-info/ Métadonnées du package installé

📄 Fichiers générés

Fichier Description
scraped_store.json Résultats du scraping (généré par pricewatch run)

🗺️ Guide de navigation

Pour démarrer rapidement

QUICKSTART.md

Pour comprendre l'architecture

README.md (section "Structure du projet") → CLAUDE.md (section "Architecture")

Pour les tests

TEST_FILES_README.mdtest_amazon.json et test_cdiscount.json

Pour les prochaines étapes

TODO.md (Phases 2-5)

Pour l'historique

CHANGELOG.md


📊 Statistiques

Code Python        : 2328 lignes
Modules Python     : 18 fichiers
Documentation      : 8 fichiers Markdown
Fichiers de test   : 3 fichiers
Fichiers config    : 4 fichiers
Stores supportés   : 2 (Amazon, Cdiscount)
Commandes CLI      : 5 commandes

🔍 Rechercher par fonctionnalité

Scraping

  • HTTP → pricewatch/app/scraping/http_fetch.py
  • Playwright → pricewatch/app/scraping/pw_fetch.py
  • Fallback automatique → pw_fetch.py (fonction fetch_with_fallback)

Parsing

  • Amazon → pricewatch/app/stores/amazon/store.py
  • Cdiscount → pricewatch/app/stores/cdiscount/store.py
  • Sélecteurs → */selectors.yml

Validation données

  • Modèle → pricewatch/app/core/schema.py
  • Enums → schema.py (StockStatus, FetchMethod, DebugStatus)

Configuration

  • YAML → scrap_url.yaml (exemple)
  • Lecture → pricewatch/app/core/io.py (fonction read_yaml_config)

Logging

  • Configuration → pricewatch/app/core/logging.py
  • Utilisation → get_logger("module.name") dans chaque module

CLI

  • Point d'entrée → pricewatch/app/cli/main.py
  • Script entry point → pyproject.toml (section [project.scripts])

Tests

  • Structure → tests/ (dossiers créés)
  • Fixtures → stores/*/fixtures/ (vides)
  • Validation sélecteurs → test_selectors.py

🚀 Commandes essentielles

# Installation
source venv/bin/activate
pip install -e .
playwright install chromium

# Vérification
pricewatch doctor

# Tests
python test_selectors.py test_amazon.json

# Scraping
pricewatch run --yaml scrap_url.yaml --debug

# Voir les résultats
cat scraped_store.json | python -m json.tool

Dernière mise à jour : 2026-01-13 Phase actuelle : Phase 1 - CLI ( Complétée) Prochaine phase : Phase 2 - Base de données