Chaque produit sur Amazon possède une clé primaire cachée : son ASIN. Pour la surveillance des prix, la recherche de catalogue ou l'analyse concurrentielle, l'ASIN est le handle sur lequel tout est construit, car il pointe vers exactement une page produit quelle que soit la modification du titre ou de l'URL de l'annonce. La difficulté ne vient pas de l'ASIN lui-même, mais du fait d'obtenir les pages produit publiques d'Amazon à grande échelle.
Ce guide vous montre comment extraire les données ASIN Amazon en Python de manière fiable. Nous expliquons ce qu'est un ASIN et comment en trouver un, puis nous construisons un petit scraper qui extrait des données produit publiques par ASIN et achemine chaque requête via le Crawlbase Smart AI Proxy pour que les pages reviennent rendues plutôt que bloquées. Le tutoriel reste délibérément limité aux données produit publiques, et la section légalité vers la fin vaut la peine d'être lue avant de pointer cela sur un volume réel.
Qu'est-ce qu'un ASIN Amazon ?
Un ASIN, abréviation de Amazon Standard Identification Number, est un code alphanumérique unique de 10 caractères qu'Amazon attribue à chaque produit de son catalogue. C'est l'identifiant que la plateforme utilise en interne pour distinguer une annonce d'une autre, et pour la plupart des produits il commence par B0. Les livres font exception : leur ASIN est généralement l'ISBN-10.
L'ASIN est important pour le scraping car il est stable. Le titre d'un produit peut être modifié, son URL peut comporter des paramètres de suivi et sa position dans la recherche peut changer chaque heure, mais l'ASIN reste fixe pour la durée de vie de l'annonce. C'est donc la bonne clé sur laquelle ancrer un jeu de données : collectez les ASINs une fois et vous pouvez récupérer le prix actuel, la disponibilité et la note de chaque produit selon un planning sans redécouvrir l'annonce à chaque fois.
Comment trouver un ASIN
Il y a deux façons simples d'obtenir l'ASIN d'un produit. La première est l'URL. Ouvrez n'importe quelle page produit et regardez le chemin : l'ASIN se trouve juste après le segment /dp/.
https://www.amazon.com/dp/B0B7CH8DMR ^^^^^^^^^^ this is the ASIN
Le même code apparaît dans les URLs plus longues de style SEO, également directement après /dp/ :
https://www.amazon.com/OtterBox-COMMUTER-iPhone-Pro-ONLY/dp/B0B7CH8DMR/
La deuxième façon est le corps de la page. Faites défiler jusqu'au tableau "Informations sur le produit" ou "Informations complémentaires" sur la plupart des annonces et l'ASIN est listé comme sa propre ligne. Quand vous scrapez le HTML rendu, la valeur apparaît également dans un champ embarqué appelé currentAsin, qui est un endroit fiable pour le lire par programmation.
Ne confondez pas un ASIN avec un SKU. Un ASIN est l'identifiant de catalogue Amazon, le même pour chaque vendeur proposant ce produit. Un SKU (Stock Keeping Unit) est un code privé qu'un vendeur attribue pour suivre son propre inventaire, et il peut différer d'un vendeur à l'autre et à travers d'autres canaux de vente. Pour l'analyse inter-annonces, vous vous basez sur l'ASIN, pas le SKU.
Pourquoi une simple requête vers Amazon échoue
Si vous pointez un simple client HTTP vers une page produit Amazon, vous obtiendrez rarement la page attendue. Amazon se défend agressivement contre le trafic automatisé : les IP de datacenter et les schémas de requêtes qui ne ressemblent pas à un vrai navigateur reçoivent un CAPTCHA, une page interstitielle "Désolé, quelque chose a mal tourné" ou un blocage pur avant même d'atteindre les champs produit, et les blocages arrivent plus vite plus vous en envoyez depuis une seule IP.
Un scraper Amazon fonctionnel a donc besoin de deux choses à chaque requête : une IP que la plateforme reconnaît comme un visiteur authentique, et une gestion des requêtes qui passe les CAPTCHAs et les défis anti-bot. Vous pouvez assembler cela vous-même avec un pool de proxies résidentiels rotatifs et votre propre logique anti-blocage, mais maintenir cette pile en bon état représente l'essentiel du travail. Le Smart AI Proxy le regroupe en un seul endpoint : pointez votre client HTTP normal sur lui comme proxy et il achemine la requête via la Crawling API de Crawlbase derrière une IP de confiance, retournant la page rendue.
Le Smart AI Proxy est un endpoint proxy plug-and-play soutenu par la Crawling API. Tout ce qui peut envoyer du trafic via un proxy HTTP, curl, Python requests, un navigateur headless, peut l'utiliser sans SDK. Derrière l'endpoint vous obtenez des IP résidentielles rotatives, la gestion des CAPTCHAs et l'évitement des blocages, de sorte que le même code qui échoue contre Amazon directement commence à retourner de vraies pages.
Une première requête avec curl
Créez un compte Crawlbase gratuit et ouvrez la section Smart AI Proxy de votre tableau de bord, où les détails de connexion listent votre token d'accès. Ce token est la seule identifiant dont vous avez besoin : le proxy s'authentifie sur le nom d'utilisateur seul, donc le mot de passe reste vide. Avant d'écrire du Python, confirmez que ça fonctionne avec un curl en une ligne qui envoie une requête de page produit via le Smart AI Proxy et affiche le HTML rendu.
curl -x "http://[email protected]:8012" -k \ "https://www.amazon.com/dp/B0B7CH8DMR"
Deux options portent la requête. -x définit le proxy, au format http://TOKEN@host:port ; remplacez YOUR_TOKEN par votre token d'accès. L'option -k (forme longue --insecure) permet à curl de se connecter sans vérifier le certificat TLS du proxy, ce qui est nécessaire parce que le Smart AI Proxy termine la connexion pour gérer le transfert et l'évitement des blocages avant d'atteindre Amazon. Envoyer des requêtes au Smart AI Proxy sans -k échouera, ce n'est donc pas optionnel. Quand ça fonctionne, vous obtenez en retour du HTML avec le contenu produit au lieu d'une page CAPTCHA.
Extraire les données ASIN Amazon avec Python
curl prouve le chemin ; Python le transforme en quelque chose d'automatisable. Vous avez besoin de Python 3.8 ou ultérieur, et la bibliothèque standard requests suffit, car le Smart AI Proxy se branche comme un proxy HTTP ordinaire sans SDK spécial requis.
python --version python -m venv amazon_env source amazon_env/bin/activate pip install requests
Sous Windows, activez l'environnement avec amazon_env\Scripts\activate à la place de la ligne source. Créez maintenant amazon_asin_scraper.py. Le script construit l'URL du proxy depuis votre token, envoie la requête à travers et affiche le statut et le corps. Notez verify=False : c'est l'équivalent Python de l'option -k de curl et est requis pour le Smart AI Proxy.
import os import requests token = os.environ["CRAWLBASE_TOKEN"] proxy = f"http://{token}@smartproxy.crawlbase.com:8012" proxies = {"http": proxy, "https": proxy} asin = "B0B7CH8DMR" url = f"https://www.amazon.com/dp/{asin}" response = requests.get(url, proxies=proxies, verify=False) print("Status:", response.status_code) print(response.text[:500])
Définissez d'abord votre token avec export CRAWLBASE_TOKEN=your_token_here, puis exécutez python amazon_asin_scraper.py. Un statut 200 et le début du HTML produit signifient que la page est revenue rendue. De là vous pourriez transmettre le HTML à un parseur comme BeautifulSoup et extraire le titre, le prix et le champ currentAsin, mais il existe une option plus propre qui évite entièrement l'analyse.
Amazon bloque rapidement les simples requêtes. Le Smart AI Proxy est un endpoint proxy plug-and-play : pointez curl, Python requests ou n'importe quel client HTTP dessus et votre trafic est acheminé via des IP résidentielles rotatives avec la gestion des CAPTCHAs et des blocages intégrée, pour que les pages produit reviennent rendues plutôt que bloquées. Commencez avec le niveau gratuit sur une page produit publique.
Obtenir du JSON structuré avec autoparse
Analyser le HTML Amazon à la main est fragile : le balisage est dense et les sélecteurs évoluent. Parce que le Smart AI Proxy fonctionne au-dessus de la Crawling API, vous pouvez passer des paramètres de la Crawling API comme en-tête de requête et laisser Crawlbase faire l'analyse à votre place. Envoyez autoparse=true dans un en-tête nommé CrawlbaseAPI-Parameters et le proxy retourne du JSON structuré pour le produit au lieu du HTML brut.
import os import json import requests token = os.environ["CRAWLBASE_TOKEN"] proxy = f"http://{token}@smartproxy.crawlbase.com:8012" proxies = {"http": proxy, "https": proxy} headers = {"CrawlbaseAPI-Parameters": "autoparse=true"} asin = "B0B7CH8DMR" url = f"https://www.amazon.com/dp/{asin}" response = requests.get(url, proxies=proxies, headers=headers, verify=False) data = json.loads(response.text) print("Status:", response.status_code) print(json.dumps(data, indent=4))
Exécutez-le et la réponse est constituée de champs structurés plutôt qu'un mur de HTML : nom, prix, disponibilité, note, l'ASIN lui-même et plus encore, prêts à stocker sans écrire un seul sélecteur. Un exemple simplifié ressemble à ceci :
{ "name": "OtterBox Commuter Series Case for iPhone 14 Pro Max", "asin": "B0B7CH8DMR", "price": "$32.99", "availability": "In Stock", "rating": "4.6 out of 5 stars", "reviewsCount": 2841 }
Cibler un pays spécifique
Les prix et la disponibilité sur Amazon varient par région, donc un travail de recherche de prix nécessite souvent des résultats tels qu'un acheteur dans un pays particulier les verrait. Passez le paramètre country avec un code à deux lettres dans le même en-tête CrawlbaseAPI-Parameters et la requête est acheminée depuis cette région. Combinez-le avec autoparse en séparant les paramètres par une esperluette.
headers = { "CrawlbaseAPI-Parameters": "autoparse=true&country=GB" } response = requests.get(url, proxies=proxies, headers=headers, verify=False)
Avec country=GB la page revient telle qu'un visiteur au Royaume-Uni la verrait, jusqu'à la localisation "Livrer à". Remplacez par n'importe quel code à deux lettres valide, US, DE, JP, pour obtenir des tarifs spécifiques à une région pour le même ASIN.
Mise à l'échelle sur de nombreux ASINs
Un produit est une démonstration ; un vrai travail couvre une liste d'ASINs. La structure reste la même : parcourez les codes, demandez chacun via le Smart AI Proxy avec autoparse, et collectez les lignes. Rythmez la boucle pour ne pas marteler Amazon ; la rotation IP du proxy empêche toute adresse unique de déclencher une limite de débit.
import os import json import time import requests token = os.environ["CRAWLBASE_TOKEN"] proxy = f"http://{token}@smartproxy.crawlbase.com:8012" proxies = {"http": proxy, "https": proxy} headers = {"CrawlbaseAPI-Parameters": "autoparse=true"} asins = ["B0B7CH8DMR", "B09V3HN1KC", "B0BDHWDR12"] results = [] for asin in asins: url = f"https://www.amazon.com/dp/{asin}" try: r = requests.get(url, proxies=proxies, headers=headers, verify=False) results.append(json.loads(r.text)) except (requests.RequestException, json.JSONDecodeError) as err: print(f"Skipped {asin}: {err}") time.sleep(2) with open("amazon_products.json", "w") as f: json.dump(results, f, indent=2) print(f"Saved {len(results)} products")
Cela écrit un fichier amazon_products.json propre que vous pouvez charger dans un tableur, une base de données ou un modèle de tarification. Remplacez la liste codée en dur par des ASINs lus depuis un fichier et vous avez un travail de catalogue répétable. Pour un traitement plus approfondi de l'évitement des blocages sur n'importe quel site, voir comment scraper des sites web sans être bloqué.
L'alternative Scraper API
Le Smart AI Proxy avec autoparse est le chemin flexible, car il fonctionne comme proxy pour tout client et tout site. Si Amazon est votre cible principale et que vous préférez appeler un simple endpoint REST plutôt que de configurer un proxy, la Crawling API est l'alternative dédiée. Elle retourne du JSON pré-analysé pour les sites supportés comme Amazon sur les types de pages produit, recherche et autres, sans configurer de proxy. La contrepartie est la portée : le Smart AI Proxy gère n'importe quelle URL via une interface proxy familière, tandis que la Scraper API fournit la sortie la plus propre pour les sites spécifiques qu'elle supporte. Pour un pipeline centré sur Amazon, comparez les deux selon votre charge de travail.
Est-il légal de scraper Amazon ?
Scraper des données Amazon publiques se situe dans une zone grise légale, et la question de savoir si un projet donné 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'Amazon restreignent l'accès automatisé, 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 avant de construire, et traitez les attentes de débit qui s'y trouvent comme un plancher, pas une suggestion.
Quelques lignes à tenir. Collectez uniquement les données produit publiques : titres, prix, disponibilité, notes et nombre d'avis que tout le monde peut voir sans compte. Respectez robots.txt et gardez le volume des requêtes suffisamment bas pour ne pas solliciter les serveurs de quiconque. Pour une réutilisation commerciale, demandez l'autorisation ou un accord de données officiel plutôt que de supposer que le silence est un consentement. Et ne collectez jamais de données personnelles, y compris tout ce lié aux comptes individuels des clients.
Ce guide est délibérément limité aux pages produit publiques, car c'est la ligne qui rend le travail défendable. Il ne couvre pas ce qui est derrière une connexion, les données de compte ou de commande, les tableaux de bord des vendeurs ou les avis liés à des personnes identifiables, et il ne contourne pas l'authentification de quelque nature que ce soit. Si votre projet a besoin de plus que des données produit publiques, la bonne démarche est une API Amazon officielle ou un accord de données, pas un scraper plus sophistiqué.
Points clés
-
L'ASIN est la clé. C'est un code stable de 10 caractères (commençant généralement par
B0) que l'on trouve après/dp/dans n'importe quelle URL produit, ancrez donc votre jeu de données sur lui plutôt que sur les titres ou les URLs. - Les simples requêtes sont bloquées. Amazon défie rapidement les IP de datacenter et le trafic ressemblant à un bot, vous avez donc besoin d'une IP de confiance et de la gestion des CAPTCHAs à chaque requête.
-
Le Smart AI Proxy est plug-and-play. Pointez n'importe quel client HTTP dessus comme proxy et votre trafic est acheminé via des IP résidentielles rotatives avec l'évitement des blocages intégré ; souvenez-vous de
-kdans curl etverify=Falseen Python. -
autoparse évite l'analyse. Envoyez
autoparse=truedans l'en-têteCrawlbaseAPI-Parameterspour obtenir du JSON structuré, et ajoutezcountry=XXpour des tarifs spécifiques à une région. - La Scraper API est l'option native Amazon. Pour un pipeline centré sur Amazon, elle retourne du JSON pré-analysé depuis un simple endpoint REST sans configurer de proxy.
- Restez sur les données publiques. Respectez les CGU et robots.txt d'Amazon, rythmez vos requêtes et ne touchez jamais aux comptes, données personnelles ou quoi que ce soit derrière une connexion.
Foire aux questions
Qu'est-ce qu'un ASIN Amazon ?
Un ASIN (Amazon Standard Identification Number) est un code alphanumérique unique de 10 caractères qu'Amazon attribue à chaque produit de son catalogue. C'est l'identifiant interne de la plateforme pour une annonce, et pour la plupart des produits il commence par B0 ; les livres font généralement exception, où l'ASIN est l'ISBN-10. Parce que le code reste fixe pour la durée de vie de l'annonce, c'est la bonne clé sur laquelle ancrer un jeu de données scrappé.
Comment trouver l'ASIN d'un produit ?
La façon la plus rapide est l'URL : l'ASIN apparaît juste après le segment /dp/, par exemple B0B7CH8DMR dans amazon.com/dp/B0B7CH8DMR. Il apparaît également dans le tableau "Informations sur le produit" sur la plupart des annonces, et quand vous scrapez la page il est présent dans un champ embarqué currentAsin lisible par programmation.
Pourquoi mes requêtes vers Amazon sont-elles bloquées ?
Amazon se défend vigoureusement contre le trafic automatisé. Les IP de datacenter et les schémas de requêtes qui ne ressemblent pas à un vrai navigateur reçoivent un CAPTCHA, une page interstitielle ou un blocage pur, et les blocages arrivent plus vite plus vous en envoyez depuis une IP. Pour obtenir de vraies pages vous avez besoin d'une IP de confiance et d'une gestion des requêtes qui passe les défis, ce que fournit l'acheminement via le Smart AI Proxy.
Quelle est la différence entre un ASIN et un SKU ?
Un ASIN est l'identifiant de catalogue Amazon, le même pour chaque vendeur proposant un produit donné. Un SKU (Stock Keeping Unit) est un code privé qu'un vendeur attribue pour suivre son propre inventaire ; il peut différer d'un vendeur à l'autre et est utilisé à travers d'autres canaux de vente également. Pour une analyse qui compare le même produit entre vendeurs, basez-vous sur l'ASIN, pas le SKU.
Dois-je utiliser le Smart AI Proxy ou la Scraper API pour Amazon ?
Les deux fonctionnent. Le Smart AI Proxy est un endpoint proxy plug-and-play qui s'adapte à n'importe quel client HTTP et n'importe quel site, et avec autoparse=true il retourne du JSON structuré pour les produits Amazon. La Scraper API est dédiée aux sites supportés comme Amazon et retourne du JSON pré-analysé depuis un simple appel REST sans configurer de proxy. Pour un pipeline centré sur Amazon, comparez les deux selon votre charge de travail ; la Scraper API donne souvent la sortie la plus propre pour cette cible spécifique.
Est-il légal de scraper Amazon ?
Cela dépend des conditions d'utilisation d'Amazon, de votre juridiction et de votre objectif, et les conditions d'Amazon restreignent l'accès automatisé. Limitez-vous strictement aux données produit publiques, titres, prix, disponibilité et notes, respectez robots.txt et les attentes de débit qui s'y trouvent, et ne touchez jamais aux comptes, données personnelles ou quoi que ce soit derrière une connexion. Pour une réutilisation commerciale, obtenez l'autorisation ou un accord de données officiel plutôt que de compter sur un scraper.
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.
