84 lines
2.5 KiB
YAML
Executable File
84 lines
2.5 KiB
YAML
Executable File
# Sélecteurs CSS/XPath pour Cdiscount
|
|
# Mis à jour le 2026-01-13 après analyse du HTML réel
|
|
|
|
# ⚠️ IMPORTANT: Cdiscount utilise une protection anti-bot forte
|
|
# - HTTP simple ne fonctionne PAS (retourne une page de protection JavaScript)
|
|
# - Playwright est OBLIGATOIRE pour récupérer le vrai contenu
|
|
# - Les classes CSS sont générées dynamiquement et peuvent changer
|
|
|
|
# Titre du produit
|
|
# Utiliser data-e2e car plus stable que les classes CSS
|
|
title:
|
|
- "h1[data-e2e='title']"
|
|
- "h1" # Fallback: premier h1
|
|
|
|
# Prix principal
|
|
# Les classes CSS sont instables (sc-83lijy-0, kwssIa, etc.)
|
|
# Meilleure approche: extraire par regex depuis le texte
|
|
# Pattern: (\d+[,\.]\d+)\s*€
|
|
price:
|
|
- "div[data-e2e='price']" # Nouveau layout (2026)
|
|
- "div[class*='SecondaryPrice-price']"
|
|
- "div[class*='price']"
|
|
- ".fpPrice"
|
|
|
|
# Prix de comparaison (prix barré)
|
|
price_compare:
|
|
- "div[class*='SecondaryPrice-wrapper']"
|
|
|
|
# Devise
|
|
# Toujours EUR pour Cdiscount France
|
|
currency:
|
|
- "meta[itemprop='priceCurrency']"
|
|
# Fallback: statique EUR
|
|
|
|
# Frais de port
|
|
shipping_cost:
|
|
- ".fpDeliveryInfo"
|
|
- "div[class*='delivery']"
|
|
|
|
# Statut de stock
|
|
# Non trouvé dans l'analyse HTML - peut être dynamique
|
|
stock_status:
|
|
- "link[itemprop='availability']"
|
|
- "div[class*='availability']"
|
|
- ".fpAvailability"
|
|
|
|
# Images produit
|
|
# Filtrer par attribut alt contenant le titre
|
|
images:
|
|
- "img[alt]" # Toutes les images avec alt
|
|
# URL format: https://www.cdiscount.com/pdt2/0/0/4/X/700x700/SKU/rw/...
|
|
|
|
# Catégorie / breadcrumb
|
|
# Pas trouvé dans le HTML analysé
|
|
# Extraire depuis l'URL: /informatique/ordinateurs-pc-portables/...
|
|
category:
|
|
- ".breadcrumb"
|
|
- "nav[class*='breadcrumb']"
|
|
|
|
# Caractéristiques techniques
|
|
# Non trouvées dans l'analyse - peuvent être dans des onglets cachés
|
|
specs_table:
|
|
- "table[class*='characteristic']"
|
|
- ".fpCharacteristics"
|
|
- "div[class*='specs']"
|
|
|
|
# SKU / référence produit
|
|
# Extraction depuis l'URL plus fiable que le HTML
|
|
# URL pattern: /f-10709-tuf608umrv004.html
|
|
# Regex: /f-(\d+)-([a-z0-9]+)\.html
|
|
# SKU = groupe 2
|
|
sku:
|
|
- "span[itemprop='sku']"
|
|
- "meta[itemprop='productID']"
|
|
|
|
# Notes importantes:
|
|
# 1. ⚠️ Playwright OBLIGATOIRE - HTTP ne fonctionne pas
|
|
# 2. Classes CSS instables - utiliser data-e2e quand disponible
|
|
# 3. Prix: parser par regex (\d+[,\.]\d+)\s*€ plutôt que CSS
|
|
# 4. SKU: extraire depuis URL /f-\d+-([a-z0-9]+)\.html
|
|
# 5. Catégorie: extraire depuis URL path /categorie1/categorie2/
|
|
# 6. Images: filtrer celles avec alt contenant le titre produit
|
|
# 7. Devise: toujours EUR pour France (static fallback OK)
|