chore: sync project files
This commit is contained in:
69
pricewatch/app/stores/amazon/selectors.yml
Executable file
69
pricewatch/app/stores/amazon/selectors.yml
Executable file
@@ -0,0 +1,69 @@
|
||||
# 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"
|
||||
|
||||
# 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"
|
||||
|
||||
# Images produit
|
||||
images:
|
||||
- "#landingImage"
|
||||
- "#imgBlkFront"
|
||||
- ".a-dynamic-image"
|
||||
- "#main-image"
|
||||
|
||||
# Catégorie / breadcrumb
|
||||
category:
|
||||
- "#wayfinding-breadcrumbs_feature_div"
|
||||
- ".a-breadcrumb"
|
||||
|
||||
# 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:contains('ASIN') + td"
|
||||
|
||||
# Messages captcha / robot check
|
||||
captcha_indicators:
|
||||
- "form[action*='validateCaptcha']"
|
||||
- "p.a-last: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
|
||||
Reference in New Issue
Block a user