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

4.1 KiB
Executable File

🚀 PriceWatch - Démarrage rapide

Installation

# Activer l'environnement virtuel
source venv/bin/activate

# Installer les navigateurs Playwright (pour anti-bot)
playwright install chromium

Commandes essentielles

1. Vérifier l'installation

pricewatch doctor

2. Détecter un store depuis une URL

# Amazon
pricewatch detect "https://www.amazon.fr/dp/B08N5WRWNW"

# Cdiscount
pricewatch detect "https://www.cdiscount.com/informatique/exemple/f-123-exemple.html"

3. Tester la récupération d'une page

# Via HTTP (rapide)
pricewatch fetch "https://www.amazon.fr/" --http

# Via Playwright (anti-bot)
pricewatch fetch "https://www.amazon.fr/" --playwright

# Mode visible (voir le navigateur)
pricewatch fetch "https://www.amazon.fr/" --playwright --headful

4. Pipeline complet : YAML → JSON

Étape 1 : Éditer scrap_url.yaml avec de vraies URLs

urls:
  - "https://www.amazon.fr/dp/VOTRE_ASIN"
  - "https://www.cdiscount.com/votre/url/f-123-sku.html"

options:
  use_playwright: true
  headful: false
  save_html: true
  save_screenshot: true
  timeout_ms: 60000

Étape 2 : Lancer le scraping

# Mode normal
pricewatch run --yaml scrap_url.yaml --out scraped_store.json

# Mode debug (logs détaillés)
pricewatch run --yaml scrap_url.yaml --out scraped_store.json --debug

Étape 3 : Consulter les résultats

# Voir le JSON de sortie
cat scraped_store.json | python -m json.tool

# Voir les HTML sauvegardés (si save_html: true)
ls -lh scraped/

# Voir les screenshots (si save_screenshot: true)
ls -lh scraped/*.png

5. Parser un fichier HTML local

# Utile pour tester les sélecteurs
pricewatch parse amazon --in scraped/amazon_B08N5WRWNW.html
pricewatch parse cdiscount --in scraped/cdiscount_123-sku.html

Structure des résultats JSON

Chaque produit scraped contient :

{
  "source": "amazon",
  "url": "https://www.amazon.fr/dp/B08N5WRWNW",
  "fetched_at": "2026-01-13T11:30:00Z",
  "title": "Nom du produit",
  "price": 299.99,
  "currency": "EUR",
  "shipping_cost": null,
  "stock_status": "in_stock",
  "reference": "B08N5WRWNW",
  "category": "Électronique",
  "images": [
    "https://example.com/image1.jpg"
  ],
  "specs": {
    "Marque": "Example",
    "Couleur": "Noir"
  },
  "debug": {
    "method": "http",
    "status": "success",
    "errors": [],
    "notes": ["Récupération réussie"],
    "duration_ms": 1250,
    "html_size_bytes": 145000
  }
}

Gestion des erreurs

Erreur 403 (Anti-bot)

Le système bascule automatiquement sur Playwright si HTTP échoue avec use_playwright: true.

Captcha détecté

Le snapshot contiendra debug.status: "failed" avec l'erreur dans debug.errors.

Timeout

Ajustez timeout_ms dans le YAML (par défaut 60000 = 1 minute).

Parsing incomplet

Si le titre ou le prix manque, debug.status: "partial" avec les champs disponibles.

Logs détaillés

# Mode debug pour voir tous les détails
pricewatch run --debug

# Les logs incluent :
# - Détection du store avec score
# - Méthode de récupération (HTTP/Playwright)
# - Durée de chaque opération
# - Taille du HTML récupéré
# - Statut du parsing
# - Erreurs rencontrées

Exemples de URLs testables

Amazon.fr

https://www.amazon.fr/dp/B08N5WRWNW
https://www.amazon.fr/gp/product/B08N5WRWNW

Cdiscount.com

https://www.cdiscount.com/informatique/r-clavier.html

⚠️ Important : Respectez les conditions d'utilisation et les robots.txt des sites.

Prochaines étapes

  1. Ajouter des fixtures HTML pour tester les parsers sans faire de requêtes
  2. Écrire des tests pytest pour valider le fonctionnement
  3. Ajouter d'autres stores (Fnac, Darty, etc.)
  4. Mettre en place une base de données pour historiser les prix
  5. Créer un worker pour automatiser le scraping quotidien

Support

  • Documentation : README.md
  • Architecture : CLAUDE.md
  • TODO : TODO.md
  • Changelog : CHANGELOG.md

Version : 0.1.0 Date : 2026-01-13 Statut : Opérationnel (Phase 1 complétée)