80 lines
2.5 KiB
YAML
Executable File
80 lines
2.5 KiB
YAML
Executable File
# Sélecteurs CSS/XPath pour AliExpress.com
|
|
# Mis à jour le 2026-01-13 après analyse du HTML réel
|
|
|
|
# ⚠️ IMPORTANT: AliExpress utilise un rendu client-side (SPA React/Vue)
|
|
# - HTTP fonctionne mais retourne un HTML minimal (75KB)
|
|
# - Playwright OBLIGATOIRE pour obtenir le contenu rendu
|
|
# - Attendre le sélecteur '.product-title' ou ajouter un délai (~3s)
|
|
# - Les données sont chargées dynamiquement via AJAX
|
|
|
|
# ⚠️ Extraction prioritaire:
|
|
# 1. Titre: h1 ou meta[property="og:title"]
|
|
# 2. Prix: Regex dans le HTML (aucun sélecteur stable)
|
|
# 3. Images: window._d_c_.DCData.imagePathList (JSON embarqué)
|
|
# 4. SKU: Depuis l'URL /item/{ID}.html
|
|
|
|
# Titre du produit
|
|
# Le h1 apparaît après chargement AJAX
|
|
title:
|
|
- "h1"
|
|
- "meta[property='og:title']" # Fallback dans meta tags
|
|
|
|
# Prix principal
|
|
# ⚠️ AUCUN SÉLECTEUR STABLE - Utiliser regex sur le HTML
|
|
# Pattern: ([0-9]+[.,][0-9]{2})\s*€ ou €\s*([0-9]+[.,][0-9]{2})
|
|
price:
|
|
- "span[class*='price']"
|
|
- "div[class*='price']"
|
|
- "span.product-price"
|
|
# Ces sélecteurs ne fonctionnent PAS - prix extrait par regex
|
|
|
|
# Devise
|
|
# Toujours EUR pour fr.aliexpress.com
|
|
currency:
|
|
- "meta[property='og:price:currency']"
|
|
# Fallback: détecter depuis l'URL (fr = EUR)
|
|
|
|
# Images produit
|
|
# ⚠️ Les images sont dans window._d_c_.DCData.imagePathList
|
|
# Format: https://ae01.alicdn.com/kf/{hash}.jpg
|
|
images:
|
|
- "img[alt]"
|
|
# Extraction depuis DCData JSON plus fiable
|
|
|
|
# Catégorie / breadcrumb
|
|
category:
|
|
- "nav[aria-label='breadcrumb'] a"
|
|
- ".breadcrumb a"
|
|
|
|
# Caractéristiques techniques
|
|
# Peuvent être dans des onglets ou sections dépliables
|
|
specs_table:
|
|
- "div[class*='specification']"
|
|
- "div[class*='properties']"
|
|
- "dl"
|
|
|
|
# SKU / référence produit
|
|
# Extraction depuis l'URL plus fiable
|
|
# URL pattern: /item/{ID}.html
|
|
# SKU = ID (10 chiffres)
|
|
sku:
|
|
- "meta[property='product:retailer_item_id']"
|
|
- "span[data-spm-anchor-id]"
|
|
|
|
# Stock / Disponibilité
|
|
stock_status:
|
|
- "button[class*='add-to-cart']"
|
|
- "button[class*='addtocart']"
|
|
- "div[class*='availability']"
|
|
|
|
# Notes importantes:
|
|
# 1. ⚠️ Playwright OBLIGATOIRE avec wait - HTML minimal sinon
|
|
# 2. Attendre le sélecteur '.product-title' avant de parser
|
|
# 3. Prix: REGEX obligatoire - aucun sélecteur CSS stable
|
|
# 4. Images: Extraire depuis window._d_c_.DCData (JSON)
|
|
# 5. SKU: Extraire depuis URL /item/{ID}.html → ID = SKU
|
|
# 6. Devise: EUR pour France (fr.aliexpress.com)
|
|
# 7. Classes CSS générées aléatoirement (hachées) - TRÈS INSTABLES
|
|
# 8. Pas de JSON-LD schema.org disponible
|
|
# 9. Temps de chargement: ~3-5s avec Playwright + wait
|