Files
scrap/pricewatch/app/stores/amazon/selectors.yml
Gilles Soulier 740c3d7516 before claude
2026-01-18 06:26:17 +01:00

102 lines
2.4 KiB
YAML
Executable File

# Sélecteurs CSS/XPath pour Amazon
# Ces sélecteurs sont à ajuster selon l'évolution du site
# Titre du produit
title:
- "#productTitle"
- "#title"
- "h1.product-title"
# Prix principal
price:
- "span.a-price-whole"
- ".a-price .a-offscreen"
- "#priceblock_ourprice"
- "#priceblock_dealprice"
- ".a-price-range .a-price .a-offscreen"
# Texte de réduction explicite
discount_text:
- "#regularprice_savings"
- "#dealprice_savings"
- "#savingsPercentage"
- "span.savingsPercentage"
# Devise (généralement dans le symbole)
currency:
- "span.a-price-symbol"
- ".a-price-symbol"
# Frais de port
shipping_cost:
- "#ourprice_shippingmessage"
- "#price-shipping-message"
- "#deliveryMessageMirId"
# Statut de stock
stock_status:
- "#availability span"
- "#availability"
- ".a-declarative .a-size-medium"
# Note moyenne
rating_value:
- "#acrPopover"
- "#averageCustomerReviews .a-icon-alt"
- "#averageCustomerReviews span.a-icon-alt"
# Nombre d'évaluations
rating_count:
- "#acrCustomerReviewText"
- "#acrCustomerReviewLink"
# Badge Choix d'Amazon
amazon_choice:
- "#acBadge_feature_div"
- "#acBadge_feature_div .ac-badge"
- "#acBadge_feature_div .ac-badge-rectangle"
- "#acBadge_feature_div .ac-badge-rectangle-icon"
# Images produit
images:
- "#landingImage"
- "#imgBlkFront"
- ".a-dynamic-image"
- "#main-image"
# Catégorie / breadcrumb
category:
- "#wayfinding-breadcrumbs_feature_div"
- ".a-breadcrumb"
# Description (détails de l'article)
description:
- "#detailBullets_feature_div"
- "#detailBulletsWrapper_feature_div"
- "#productDetails_detailBullets_sections1"
- "#feature-bullets"
# Caractéristiques techniques (table specs)
specs_table:
- "#productDetails_techSpec_section_1"
- "#productDetails_detailBullets_sections1"
- ".prodDetTable"
- "#product-specification-table"
# ASIN (parfois dans les métadonnées)
asin:
- "input[name='ASIN']"
- "th:-soup-contains('ASIN') + td"
# Messages captcha / robot check
captcha_indicators:
- "form[action*='validateCaptcha']"
- "p.a-last:-soup-contains('Sorry')"
- "img[alt*='captcha']"
# Notes pour le parsing:
# - Amazon change fréquemment ses sélecteurs
# - Plusieurs fallbacks sont fournis pour chaque champ
# - Le parsing doit tester tous les sélecteurs dans l'ordre
# - En cas d'échec, marquer le champ comme null dans ProductSnapshot