Sur toute page produit Amazon avec plusieurs vendeurs, exactement une offre remporte la place de choix à côté des boutons "Ajouter au panier" et "Acheter maintenant". Cette place, c'est le Buy Box, et elle capte la grande majorité des ventes d'une annonce. Des études estiment qu'environ 90 % des achats Amazon passent par le Buy Box plutôt que par la liste "Autres vendeurs" enfouie plus bas sur la page. Pour un vendeur en concurrence sur une annonce partagée, gagner ou perdre le Buy Box fait la différence entre un flux constant de commandes et un silence quasi total.
Ce guide vous montre comment extraire les données du Buy Box Amazon avec Python pour suivre l'offre gagnante dans le temps. Vous construisez un petit scraper fonctionnel qui récupère une page produit rendue via la Crawling API, l'analyse avec BeautifulSoup et extrait les champs définissant le Buy Box courant : le prix gagnant, le vendeur, qui exécute la commande, et la disponibilité. L'ensemble du tutoriel reste délibérément limité aux données publiques de la page produit, et la section légale près de la fin vaut la peine d'être lue avant de pointer ce scraper sur un volume réel.
Ce que vous allez construire
Un script Python qui prend une URL de produit Amazon, récupère la page rendue via la Crawling API et extrait un enregistrement structuré décrivant le gagnant actuel du Buy Box. Nous utilisons une fiche de téléphone Motorola comme exemple fil conducteur et extrayons ces champs :
- Titre du produit le nom du produit affiché dans le Buy Box.
- Prix le prix courant de l'offre gagnante, qui fluctue à mesure que les vendeurs se font concurrence.
- Nom du vendeur qui détient actuellement le Buy Box, qu'il s'agisse d'Amazon lui-même ou d'un vendeur tiers.
- Nom de l'expéditeur qui exécute la commande, ce qui vous indique FBA (fulfillment par Amazon) ou merchant-fulfilled.
- Disponibilité le statut de stock affiché avec l'offre.
- Bouton Acheter maintenant / Ajouter au panier si les boutons d'achat sont présents, confirmant un Buy Box actif plutôt qu'une annonce indisponible.
Ce qu'est le Buy Box Amazon et pourquoi les vendeurs le suivent
Le Buy Box est l'offre encadrée sur le côté droit d'une page produit, qui affiche le prix, les détails du vendeur et de l'exécution, la ligne de disponibilité et les boutons "Ajouter au panier" et "Acheter maintenant". Quand plusieurs marchands vendent le même produit sur une annonce, Amazon en sélectionne un pour le mettre en avant. La plupart des acheteurs cliquent sur "Ajouter au panier" sans jamais défiler jusqu'à "Autres vendeurs sur Amazon" ou "Comparer avec des articles similaires", de sorte que l'offre mise en avant remporte la vente. Amazon appelle maintenant officiellement cela l'Offre en Vedette, bien que la plupart des vendeurs disent encore Buy Box.
L'offre gagnante est déterminée par un algorithme qui pondère le prix, la rapidité et le coût d'expédition, les indicateurs de performance du vendeur, la méthode d'exécution et le stock, et il réévalue en continu. Un concurrent qui sous-coupe votre prix de quelques centimes, ou qui passe à une livraison plus rapide, peut vous prendre le Buy Box en l'espace d'une heure. Comme la position change en temps réel, les vendeurs la surveillent par programmation plutôt que manuellement :
- Surveillance en temps réel. Le Buy Box change constamment. Un scraper qui sonde une annonce selon un calendrier vous indique qui le détient maintenant et à quelle fréquence il change de mains, ce qu'il est impossible de suivre manuellement sur un catalogue entier.
- Intelligence des prix. Le prix est l'un des facteurs les plus importants dans la décision, donc connaître le prix gagnant actuel vous permet d'ajuster le vôtre pour concurrencer. Consultez notre guide sur le scraping web pour l'intelligence des prix pour le schéma global.
- Analyse concurrentielle. Suivre quels vendeurs gagnent, à quel prix et avec quelle méthode d'exécution vous montre ce qu'il faut pour concurrencer sur une annonce donnée.
- Stratégie à grande échelle. Sur des centaines d'annonces, la collecte automatisée est le seul moyen pratique de surveiller chaque produit et de réagir assez vite pour que cela compte.
Pourquoi une simple requête échoue sur Amazon
Si vous demandez une URL de produit Amazon avec un simple client HTTP, vous obtenez un statut 200 et une page avec presque aucune des données du Buy Box. Deux facteurs jouent contre vous. Premièrement, Amazon charge une grande partie du bloc d'offre, y compris le vendeur, l'exécution et les détails de disponibilité, dynamiquement via JavaScript et AJAX après l'arrivée du HTML initial. Une récupération brute capture la coquille avant le rendu de ces parties. Deuxièmement, Amazon détecte rapidement le trafic automatisé : les plages d'IP de datacenter et les schémas de requêtes qui ne ressemblent pas à un vrai navigateur se heurtent à un CAPTCHA, une limite de débit ou un blocage pur avant d'atteindre l'offre rendue.
Un scraper Amazon fonctionnel a donc besoin de deux choses en une seule requête : un vrai navigateur qui rende la page, et une IP que la plateforme lise comme un acheteur ordinaire. Vous pouvez assembler cela vous-même avec un navigateur headless et un pool de proxies résidentiels rotatifs, mais assembler ces deux éléments et les maintenir en bon état représente l'essentiel du travail. La Crawling API regroupe les deux en un seul appel : vous lui envoyez l'URL avec un token JavaScript, elle rend la page derrière une IP résidentielle de confiance, et elle retourne le HTML terminé à analyser.
Crawlbase propose deux types de tokens. Le token normal récupère le HTML statique ; le token JavaScript (JS) rend d'abord la page dans un vrai navigateur. Amazon charge son bloc d'offre côté client, donc vous avez besoin du token JS ici. Le token normal retourne la même coquille partielle qu'une récupération brute, et les champs Buy Box n'y sont pas à analyser.
Prérequis
Vous avez besoin de quelques éléments en place avant d'écrire du code. Aucun ne prend beaucoup de temps.
Python de base. Vous devez être à l'aise pour écrire et exécuter un script Python et installer des paquets avec pip. Si vous êtes novice dans le langage, notre intro au scraping avec Python et la documentation officielle vous amèneront au niveau que ce tutoriel suppose acquis.
Python 3.8 ou ultérieur. Vérifiez votre version avec python --version. Si vous ne l'avez pas, installez-le depuis python.org ou via une distribution comme Anaconda.
Un compte Crawlbase et un token JS. Inscrivez-vous, ouvrez votre tableau de bord et copiez votre token JavaScript (JS). Crawlbase vous donne jusqu'à 20 000 requêtes gratuites pour la Crawling API pour commencer, sans carte. Traitez le token comme un mot de passe : il authentifie vos requêtes, donc gardez-le hors du contrôle de version.
Configurer le projet
Créez un environnement virtuel pour isoler les dépendances du projet, puis installez les trois bibliothèques dont le scraper a besoin.
python --version python -m venv buybox_env source buybox_env/bin/activate pip install crawlbase beautifulsoup4 pandas
Sous Windows, activez l'environnement avec buybox_env\Scripts\activate à la place de la ligne source. Trois dépendances font le travail : crawlbase est le client officiel de la Crawling API, beautifulsoup4 analyse le HTML retourné pour extraire chaque champ par sélecteur CSS, et pandas écrit les enregistrements en CSV à la fin pour que vous puissiez accumuler des échantillons dans le temps.
Étape 1 : Récupérer la page produit rendue
Commencez par obtenir la page terminée. Importez la classe CrawlingAPI, initialisez-la avec votre token JS et demandez l'URL du produit. Les deux options d'attente importent ici car le bloc d'offre se rend tardivement. Vérifier le code de statut avant d'analyser rend les échecs visibles plutôt que silencieux.
from crawlbase import CrawlingAPI api = CrawlingAPI({"token": "YOUR_CRAWLBASE_TOKEN"}) def crawl(product_url): options = {"page_wait": 2000, "ajax_wait": "true"} response = api.get(product_url, options) if response["status_code"] == 200: return response["body"].decode("latin1") print(f"Request failed: {response['status_code']}") return None if __name__ == "__main__": product_url = "https://www.amazon.com/Motorola-Stylus-Battery-Unlocked-Emerald/dp/B0BFYRV4CD" html = crawl(product_url) print(html[:500] if html else "No HTML returned")
Les deux options d'attente sont ce qui fait fonctionner une cible dynamique comme celle-ci. ajax_wait indique à l'API d'attendre la fin du chargement du contenu asynchrone, et page_wait maintient une attente fixe en millisecondes après le chargement pour que le bloc d'offre à rendu tardif apparaisse avant la capture de la page. Le corps est décodé en latin1 car les pages Amazon mélangent des caractères que le décodage strict UTF-8 peut bloquer. Exécutez ce script et vous devriez voir le vrai balisage produit, pas la coquille partielle qu'une récupération brute retourne. Cela confirme que le rendu fonctionne avant d'écrire un seul sélecteur.
Ce bloc d'offre s'est rempli uniquement parce que la page a été rendue derrière une IP de confiance. La Crawling API prend un token JS, exécute la page dans un vrai navigateur, fait tourner les IP résidentielles côté serveur et vous remet le HTML terminé, ce qui vous évite de gérer une flotte headless et un pool de proxies vous-même. Pointez-la sur une URL produit sur le niveau gratuit d'abord.
Étape 2 : Inspecter la page et cartographier les sélecteurs
Avant d'écrire le parseur, ouvrez une page produit dans votre navigateur, faites un clic droit sur le bloc d'offre et choisissez Inspecter. Chaque champ du Buy Box réside dans un élément stable que vous pouvez cibler par sélecteur CSS. Survolez les éléments dans le panneau des outils de développement pour voir quelle partie de la page ils couvrent, puis copiez le sélecteur. Voici les sélecteurs durables pour les champs Buy Box, portés depuis une page produit Amazon en direct :
-
Titre du produit
#productTitle -
Prix
.a-price .a-offscreen(la copie d'accessibilité de la chaîne de prix) -
Disponibilité
#availability span -
Nom de l'expéditeur
#fulfillerInfoFeature_feature_div span.offer-display-feature-text-message -
Nom du vendeur
#merchantInfoFeature_feature_div span.offer-display-feature-text-message -
Bouton Acheter maintenant
span#submit.buy-nowet Bouton Ajouter au panierspan#submit.add-to-cart
Les sélecteurs d'expéditeur et de vendeur sont les deux qui vous indiquent comment une offre gagne. Quand les deux affichent "Amazon.com", la commande est vendue et expédiée par Amazon. Quand le vendeur est un tiers mais que l'expéditeur est Amazon, c'est une offre FBA (fulfillment par Amazon). Quand le vendeur tiers expédie également, l'offre est merchant-fulfilled. Suivre ces deux champs dans le temps vous montre non seulement la guerre des prix sur une annonce, mais aussi la stratégie d'exécution de celui qui gagne.
Étape 3 : Analyser les données du Buy Box avec BeautifulSoup
HTML rendu en main, chargez-le dans BeautifulSoup et extrayez chaque champ par son sélecteur. Deux petits assistants rendent l'extraction propre : l'un retourne le texte d'un élément ou une valeur par défaut quand il est absent, et l'autre signale si un bouton est présent. Notez que les IDs avec des points (submit.buy-now et submit.add-to-cart) sont échappés dans le sélecteur CSS en submit\.buy-now, car un point brut serait lu comme une classe.
from bs4 import BeautifulSoup def scrape_buy_box(html_content): soup = BeautifulSoup(html_content, "html.parser") buy_box = {} def text_or_default(selector, default="Not found"): el = soup.select_one(selector) return el.text.strip() if el else default def is_present(selector): return "Present" if soup.select_one(selector) else "Not Present" buy_box["Buy Now Button"] = is_present("span#submit\\.buy-now") buy_box["Add to Cart Button"] = is_present("span#submit\\.add-to-cart") buy_box["Availability"] = text_or_default("#availability span") buy_box["Product Title"] = text_or_default("#productTitle") buy_box["Price"] = text_or_default(".a-price .a-offscreen") buy_box["Shipper Name"] = text_or_default( "#fulfillerInfoFeature_feature_div span.offer-display-feature-text-message" ) buy_box["Seller Name"] = text_or_default( "#merchantInfoFeature_feature_div span.offer-display-feature-text-message" ) return buy_box
Chaque extraction passe par text_or_default, de sorte qu'un élément absent retourne "Not found" plutôt que de lever une exception sur un appel .text contre rien. Cette résilience compte ici : quand une annonce n'a pas de Buy Box courant, ou est en rupture de stock, plusieurs de ces champs seront absents, et vous voulez un enregistrement propre qui le dit plutôt qu'un plantage. L'assistant is_present transforme la présence des boutons d'achat en un simple indicateur, qui est votre signal le plus rapide qu'une offre est réellement achetable maintenant.
Étape 4 : Assembler le script complet
Maintenant reliez la récupération, l'analyse et le stockage en un seul script exécutable. Il crawle la page produit, extrait l'enregistrement Buy Box, l'affiche en JSON et l'ajoute à un CSV pour que vous puissiez construire un historique d'échantillons dans le temps.
import json import os from datetime import datetime, timezone from crawlbase import CrawlingAPI from bs4 import BeautifulSoup import pandas as pd api = CrawlingAPI({"token": "YOUR_CRAWLBASE_TOKEN"}) def crawl(product_url): options = {"page_wait": 2000, "ajax_wait": "true"} response = api.get(product_url, options) if response["status_code"] == 200: return response["body"].decode("latin1") print(f"Request failed: {response['status_code']}") return None def scrape_buy_box(html_content): soup = BeautifulSoup(html_content, "html.parser") buy_box = {} def text_or_default(selector, default="Not found"): el = soup.select_one(selector) return el.text.strip() if el else default def is_present(selector): return "Present" if soup.select_one(selector) else "Not Present" buy_box["Buy Now Button"] = is_present("span#submit\\.buy-now") buy_box["Add to Cart Button"] = is_present("span#submit\\.add-to-cart") buy_box["Availability"] = text_or_default("#availability span") buy_box["Product Title"] = text_or_default("#productTitle") buy_box["Price"] = text_or_default(".a-price .a-offscreen") buy_box["Shipper Name"] = text_or_default( "#fulfillerInfoFeature_feature_div span.offer-display-feature-text-message" ) buy_box["Seller Name"] = text_or_default( "#merchantInfoFeature_feature_div span.offer-display-feature-text-message" ) return buy_box def save_to_csv(record, path="buy_box_history.csv"): record["Captured At"] = datetime.now(timezone.utc).isoformat() df = pd.DataFrame([record]) write_header = not os.path.exists(path) df.to_csv(path, mode="a", header=write_header, index=False) def main(): product_url = "https://www.amazon.com/Motorola-Stylus-Battery-Unlocked-Emerald/dp/B0BFYRV4CD" html = crawl(product_url) if not html: return buy_box = scrape_buy_box(html) print(json.dumps(buy_box, indent=2)) save_to_csv(buy_box) if __name__ == "__main__": main()
Le script crawle la page, analyse le Buy Box et ajoute une ligne horodatée par exécution à buy_box_history.csv. Le champ Captured At est ce qui transforme un simple instantané en suivi : exécutez ce script selon un calendrier (cron, un gestionnaire de tâches ou un callback Crawler asynchrone) et chaque ligne enregistre qui détenait le Buy Box, à quel prix et avec quelle exécution, à un moment précis. Comparer ces lignes sur des jours ou des semaines vous montre à quelle fréquence le gagnant change et quel prix il faut pour tenir la position.
À quoi ressemble la sortie
Exécutez le script complet avec python scraper.py et vous obtenez un enregistrement structuré pour le Buy Box courant, affiché en JSON et ajouté au CSV.
{ "Buy Now Button": "Present", "Add to Cart Button": "Present", "Availability": "In Stock", "Product Title": "Motorola Moto G Stylus 5G | 2021 | 2-Day Battery | Unlocked | Made for US 4/128GB | 48MP Camera | Cosmic Emerald", "Price": "$149.99", "Shipper Name": "Amazon.com", "Seller Name": "Amazon.com", "Captured At": "2024-01-15T09:30:00+00:00" }
Dans cet exemple, le vendeur et l'expéditeur affichent tous les deux "Amazon.com", donc Amazon lui-même détient le Buy Box et exécute la commande. Sur une annonce remportée par un tiers, vous verriez un nom de marchand dans Seller Name et soit "Amazon.com" dans Shipper Name (une offre FBA), soit le même marchand à nouveau (merchant-fulfilled). Comparer ces deux champs à travers les captures est ce qui vous raconte l'histoire d'exécution derrière chaque victoire du Buy Box.
Mise à l'échelle sur un catalogue d'annonces
Une URL est une démonstration ; un vrai tracker surveille de nombreux produits. Comme chaque capture de Buy Box est une récupération de page indépendante, vous montez en charge en bouclant sur une liste d'URLs de produits et en rythmant les requêtes pour ne pas marteler Amazon en boucle serrée.
import time def track_listings(product_urls): for url in product_urls: html = crawl(url) if not html: continue buy_box = scrape_buy_box(html) buy_box["Product URL"] = url save_to_csv(buy_box) print(f"{buy_box['Seller Name']} @ {buy_box['Price']} -> {url}") time.sleep(2)
Le time.sleep(2) entre les requêtes rythme l'exécution pour que vous ne lanciez pas des récupérations dos à dos sur la même cible, ce qui est le moyen le plus rapide d'être limité. Pour les catalogues plus larges, le Crawler asynchrone vous permet de pousser de nombreuses URLs et de recevoir les résultats sur un callback plutôt que de bloquer sur chacune. Si vous n'avez besoin que de quelques champs et que vous voulez sauter l'écriture de sélecteurs entièrement, la Crawling API peut analyser automatiquement les pages produits Amazon en JSON structuré pour vous.
Rester non bloqué
Même avec le rendu géré, Amazon surveille le trafic à la forme d'un scraper. Quelques habitudes maintiennent une exécution saine, et elles s'appliquent à toute cible commerciale difficile.
-
Rythmez vos requêtes. Répartissez les récupérations avec un délai entre les annonces plutôt que de crawler à pleine vitesse. Le
time.sleepdans la boucle est le plancher, pas le plafond. - Misez sur la rotation. Un pool d'IP résidentielles répartit les requêtes sur de nombreuses adresses d'utilisateurs réels pour qu'aucune ne déclenche une limite de débit. La Crawling API gère cela pour vous ; si vous construisez votre propre pile, c'est la partie à soigner.
- Lisez les codes de statut. Une exécution qui commence à retourner des défis ou des codes non-200 vous indique que le débit ou le niveau d'IP actuel n'est plus suffisant. Traitez cela comme un signal de ralentissement, pas comme du bruit à ignorer.
Pour le guide global, voir comment scraper des sites web sans être bloqué. Si vous souhaitez scraper l'annonce complète plutôt que le seul Buy Box, le guide complémentaire sur l'extraction des données produits Amazon couvre le reste de la page, et notre tutoriel sur les Meilleures Ventes Amazon montre comment collecter des annonces à alimenter dans un tracker comme celui-ci.
Est-il légal de scraper Amazon ?
La question de savoir si le scraping Amazon est autorisé dépend des Conditions d'utilisation d'Amazon, de votre juridiction et de l'usage que vous faites des données. Les Conditions d'utilisation d'Amazon restreignent l'accès automatisé et la collecte de données, de sorte que le scraping peut aller à l'encontre de ces conditions quelle que soit la prudence de vos outils. Aucun code ici ne change cela ; il fait simplement fonctionner la partie technique. Lisez les Conditions d'utilisation d'Amazon et son robots.txt, et traitez les deux comme les limites de ce que vous collectez.
Quelques lignes à tenir. Collectez uniquement les données publiques : le titre du produit, le prix de l'offre, les étiquettes du vendeur et de l'exécution, et la disponibilité que tout le monde peut voir sur une page produit sans compte. Maintenez votre volume de requêtes suffisamment bas pour ne pas solliciter les serveurs d'Amazon, et rythmez l'exécution comme montré ci-dessus. Évitez les données personnelles, y compris tout ce lié à des acheteurs ou des évaluateurs identifiables au-delà du texte de l'avis public. Ne redistribuez pas de médias protégés par le droit d'auteur tels que les images ou descriptions de produits comme si c'étaient les vôtres. Ce guide est délibérément limité au bloc d'offre public, il ne couvre donc rien derrière une connexion : les données de compte, l'historique des commandes, les tableaux de bord Seller Central, ou les flux de paiement et de paiement sont tous hors de portée, et contourner l'authentification pour les atteindre n'est pas quelque chose qu'un scraper devrait faire.
Si vous êtes vendeur Amazon, le chemin sanctionné vers vos propres données Buy Box et de prix est l'API officielle Amazon Selling Partner, qui vous donne un accès structuré et sous licence sans scraping du tout. Pour la surveillance concurrentielle à grande échelle, ou tout usage avec redistribution commerciale, une API officielle ou un accord de données est le bon outil quand vous avez besoin d'une structure, d'un volume ou de droits garantis. Utilisez le scraping pour ce qu'il fait bien : échantillonnage léger, public et en lecture seule de pages que vous pourriez ouvrir vous-même dans un navigateur.
Points clés
- Le Buy Box est l'offre qui remporte la vente. Environ 90 % des achats Amazon y passent, donc les vendeurs suivent qui le détient, à quel prix et avec quelle exécution.
- Amazon rend le bloc d'offre côté client. Une récupération brute retourne une coquille partielle, donc vous devez rendre la page avec un token JS avant que les champs vendeur, expéditeur et disponibilité existent à analyser.
- Vendeur plus expéditeur raconte l'histoire d'exécution. Les deux affichant "Amazon.com" signifie fulfillment par Amazon ; un vendeur tiers avec Amazon comme expéditeur est du FBA ; le même marchand dans les deux est merchant-fulfilled.
-
Les horodatages transforment les instantanés en suivi. Ajouter une ligne
Captured Atpar exécution, selon un calendrier, vous permet de comparer les victoires Buy Box et les mouvements de prix dans le temps. - Restez sur les données publiques. Respectez les conditions et robots.txt d'Amazon, préférez l'API officielle Selling Partner pour les données sous licence ou vendeur, et ne touchez jamais aux comptes, commandes ou quoi que ce soit derrière une connexion.
Foire aux questions
Qu'est-ce que le Buy Box Amazon et pourquoi est-il important ?
Le Buy Box est l'offre mise en avant sur une page produit qui affiche le prix, les détails du vendeur et de l'exécution, ainsi que les boutons "Ajouter au panier" et "Acheter maintenant". Quand plusieurs marchands vendent le même produit, Amazon en met un seul en avant, et la plupart des acheteurs achètent via cette offre sans comparer les autres. Environ 90 % des ventes Amazon passent par le Buy Box, donc le remporter est le levier le plus important qu'un vendeur sur une annonce partagée a sur son volume de commandes.
Pourquoi une requête brute ne retourne-t-elle aucune donnée Buy Box ?
Parce qu'Amazon charge une grande partie du bloc d'offre, y compris le vendeur, l'expéditeur et les champs de disponibilité, dynamiquement via JavaScript et AJAX après l'arrivée du HTML initial. Une requête HTTP brute capture la coquille avant le rendu de ces parties, donc les champs que vous voulez sont vides. Rendre la page en premier, ce que fait le token JS de la Crawling API, est ce qui fait apparaître les données du Buy Box dans le HTML que vous analysez.
Comment distinguer une offre FBA d'une offre merchant-fulfilled ?
Comparez les champs Seller Name et Shipper Name. Si les deux affichent "Amazon.com", Amazon vend et expédie l'article. Si le vendeur est un tiers mais que l'expéditeur est "Amazon.com", l'offre est FBA (fulfillment par Amazon). Si le même nom tiers apparaît dans les deux, le vendeur exécute lui-même la commande. Les deux sélecteurs pour ces champs sont respectivement #merchantInfoFeature_feature_div et #fulfillerInfoFeature_feature_div.
Comment suivre le Buy Box dans le temps plutôt que de prendre un seul instantané ?
Ajoutez chaque capture comme une ligne horodatée à un CSV, comme le fait le script complet avec le champ Captured At, et exécutez le scraper selon un calendrier. Cron, un planificateur de tâches ou le callback du Crawler asynchrone fonctionnent tous. Une fois que vous avez un historique, comparez les lignes consécutives pour voir quand le vendeur gagnant, le prix ou la méthode d'exécution a changé pour une annonce.
Ai-je besoin du token normal ou du token JS pour Amazon ?
Le token JS. Le token normal récupère le HTML statique, qui sur Amazon omet le bloc d'offre chargé dynamiquement. Le token JS rend d'abord la page dans un vrai navigateur, de sorte que les champs Buy Box sont présents quand BeautifulSoup les analyse. Amazon est très gourmand en JavaScript, donc le token JS est la bonne valeur par défaut pour ses pages produits.
Mes sélecteurs retournent "Not found". Qu'est-ce qui a changé ?
Généralement l'une de deux choses. Soit Amazon a mis à jour son balisage, auquel cas vous réinspectez une page produit en direct dans les outils de développement de votre navigateur et mettez à jour le sélecteur, soit le bloc d'offre n'a pas fini de se rendre, auquel cas augmentez la valeur page_wait pour que l'API attende plus longtemps avant de capturer le HTML. La maintenance périodique des sélecteurs est normale pour tout scraper en production, pas le signe que quelque chose est cassé.
Crawlez n'importe quel site à grande échelle, sans combattre l'infrastructure.
Crawlbase gère les proxies, les empreintes et les CAPTCHA afin que votre équipe livre des pipelines de données au lieu de maintenir la plomberie de crawl. 1 000 requêtes gratuites, sans carte requise.
