Amazon est le plus grand jeu de données produits du web ouvert, et le scraper, prix, avis, classements, disponibilité, alimente la surveillance des prix, l’analytique du rayon digital, l’étude de marché, et l’intelligence concurrentielle. C’est aussi l’un des sites les plus agressivement défendus vers lesquels vous pointerez jamais un scraper. Ratez la configuration et vous rencontrez la page « Robot Check », un 503, ou des données du mauvais pays en une poignée de requêtes.
Ceci est un guide pratique pour le faire correctement : ce que vous pouvez tirer d’une page produit Amazon, pourquoi cela casse sans la bonne infrastructure, et comment le collecter proprement à travers des proxys résidentiels. La version courte : Amazon est géo-divisé par marketplace et dur avec les bots, donc vous devez récupérer en tant que vrai acheteur dans le bon pays, ce à quoi servent exactement les proxys résidentiels.
Ce que vous pouvez scraper d’une page produit Amazon
Une fiche Amazon est dense en données publiques et structurées. Les champs que les équipes collectent le plus :
- Prix et info d’offre — prix actuel, prix catalogue, remises, et coupons.
- Disponibilité et buy box — en stock ou non, et quel vendeur remporte la buy box.
- Best Sellers Rank (BSR) — le classement d’Amazon au sein d’une catégorie, un proxy de la demande.
- Notes et avis — note en étoiles, nombre d’avis, et texte des avis.
- Détail produit — titre, bullets, description, images, variantes, et spécifications.
- Info vendeur — le vendeur et les détails d’expédition sur l’offre.
Tout cela est sur la page publique. Le piège, c’est qu’Amazon décide quelle page vous montrer selon où vous semblez être et si vous ressemblez à un vrai acheteur.
Pourquoi Amazon est difficile : c’est un problème de proxy
Trois propriétés d’Amazon transforment son scraping en un problème d’accès qui atterrit sur la couche proxy.
Amazon est divisé par marketplace, et géo-personnalisé. Amazon exploite des marketplaces séparées par pays, amazon.com, amazon.de, amazon.co.uk, amazon.co.jp, et chacune a des prix, une disponibilité, des vendeurs, et même un catalogue différents. En plus de cela, une seule marketplace personnalise le prix et la livraison selon la localisation de l’acheteur. Récupérez amazon.de depuis une IP américaine et vous pouvez obtenir une redirection, une expérience différente, ou une disponibilité qu’un acheteur allemand ne verrait jamais. Pour capturer une marketplace avec précision, vous devez venir de ce pays, ce à quoi sert le ciblage par pays et par ville.
Amazon se défend durement contre les bots. Les IP de datacenter sont signalées vite et reçoivent le CAPTCHA « Robot Check », un 503, ou du throttling, donc vous enregistrez la version bot, pas la page de l’acheteur. (Pourquoi les scrapers se font bloquer couvre la mécanique.) Les IP résidentielles portent la confiance d’un vrai utilisateur, donc Amazon vous sert la vraie fiche.
La couverture est à fort volume et répétée. Suivre de nombreux ASIN à travers les marketplaces chaque jour, ce sont beaucoup de requêtes. Depuis une poignée d’IP vous déclenchez vite des rate limits et obtenez un échantillon partiel et criblé de blocages. Un grand pool rotatif est ce qui garde le crawl complet.
Le correctif pour les trois est le même : récupérer depuis des IP résidentielles qui correspondent au pays de la marketplace, en tournant à grande échelle.
Étape 1 : passer par une IP résidentielle dans le bon pays
Sur le gateway Shifter, vous choisissez un pays en l’encodant dans le nom d’utilisateur du proxy, un point de terminaison, pas de listes d’IP. Accordez le pays du proxy au domaine de la marketplace : amazon.com depuis une IP américaine, amazon.de depuis une IP allemande.
# amazon.com en tant qu'acheteur américaincurl -x customer-USERNAME-country-us:PASSWORD@p.shifter.io:443 \ "https://www.amazon.com/dp/B0EXAMPLE"
# amazon.de en tant qu'acheteur allemandcurl -x customer-USERNAME-country-de:PASSWORD@p.shifter.io:443 \ "https://www.amazon.de/dp/B0EXAMPLE"Chaque produit a un ASIN stable (le code B0... dans l’URL /dp/ASIN), donc une fois que vous avez votre liste d’ASIN, le motif d’URL est prévisible à travers les marketplaces.
Étape 2 : récupérer et parser en code
Vous avez rarement besoin d’un navigateur pour les données produits Amazon, l’essentiel est dans le HTML initial, donc un client HTTP simple est plus rapide et bien moins cher en bande passante. Voici la forme en Python (voir proxys résidentiels avec Python pour la configuration complète du client) :
import os, requestsfrom bs4 import BeautifulSoup
USER, PASS = os.environ["SHIFTER_USER"], os.environ["SHIFTER_PASS"]GATEWAY = "p.shifter.io:443"
def proxy(country="us"): url = f"http://{USER}-country-{country}:{PASS}@{GATEWAY}" return {"http": url, "https": url}
def scrape_product(asin, country="us", tld="com"): url = f"https://www.amazon.{tld}/dp/{asin}" headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "Accept-Language": "en-US,en;q=0.9", "Accept-Encoding": "gzip, br", } r = requests.get(url, headers=headers, proxies=proxy(country), timeout=30) r.raise_for_status() soup = BeautifulSoup(r.text, "html.parser") title = soup.select_one("#productTitle") price = soup.select_one(".a-price .a-offscreen") rating = soup.select_one("#acrPopover") return { "asin": asin, "title": title.get_text(strip=True) if title else None, "price": price.get_text(strip=True) if price else None, "rating": rating["title"].strip() if rating and rating.has_attr("title") else None, }
print(scrape_product("B0EXAMPLE", country="us", tld="com"))Deux choses comptent plus que les sélecteurs : envoyez un User-Agent et un Accept-Language réalistes qui correspondent au pays de votre proxy, et attendez-vous à ce que le markup d’Amazon change, donc traitez chaque sélecteur comme optionnel et validez ce que vous extrayez. Pour les avis, demandez les pages d’avis et paginez ; pour le BSR, il est généralement dans la section « Informations sur le produit » / détail.
Étape 3 : tourner, et tenir des sessions là où ça aide
- Tournez à chaque requête pour le scraping large de catalogue à travers de nombreux ASIN, omettez tout id de session pour que chaque requête obtienne une IP fraîche.
- Tenez une session sticky quand vous paginez à travers les avis d’un seul produit ou un flux à plusieurs étapes, pour que la séquence ressemble à un acheteur. Ajoutez
-sid-<id>-ttl-<secondes>au nom d’utilisateur.
Parce que la qualité d’IP décide à quelle fréquence vous voyez la vraie page plutôt qu’un Robot Check, comprendre la réputation d’IP aide à garder le crawl propre.
Étape 4 : gérer les blocages et garder la bande passante basse
Quand Amazon sert un CAPTCHA/Robot Check ou un 503, ne martelez pas, tournez vers une IP fraîche, faites un backoff, et réessayez. Les blocages constants (pas occasionnels) pointent vers la qualité d’IP ou le comportement des requêtes, couvert dans comment éviter de se faire bloquer en scrapant.
Si une page a vraiment besoin de JavaScript et que vous recourez à un navigateur, bloquez images, médias, et polices pour ne pas payer au Go des pixels que vous ne parsez jamais, la technique est dans comment réduire les coûts de bande passante proxy. Pour la plupart des champs produits Amazon, le HTTP simple suffit et c’est le moins cher.
L’utiliser de façon responsable
Scrapez uniquement les données produits publiques, fiches, prix, notes, et texte des avis que tout acheteur peut voir, et tenez-vous à l’écart des données personnelles, les identités des auteurs d’avis et toute information personnelle attachée aux avis ne sont pas de bon jeu. Respectez les conditions et rate limits d’Amazon, ne dégradez pas le site, et sachez que les conditions d’utilisation d’Amazon restreignent l’accès automatisé, donc limitez la collecte aux données publiques et obtenez un conseil juridique pour tout ce qui est incertain (voir le web scraping est-il légal). Un proxy change l’IP d’où part une requête, pas le fait que vous deviez la faire ; notre politique d’usage acceptable est la source de vérité pour ce qui est permis sur Shifter.
FAQ
Puis-je scraper Amazon sans proxys ? Pas de façon fiable à une quelconque échelle. Amazon signale vite le trafic de datacenter et d’IP répétée avec des CAPTCHA et des 503, et vous ne verriez jamais que la marketplace d’un pays. Les proxys résidentiels vous laissent récupérer en tant que vrai acheteur dans chaque pays cible.
Pourquoi ai-je besoin que le pays du proxy corresponde à la marketplace ?
Parce que les marketplaces d’Amazon sont par pays et géo-personnalisées. Récupérer amazon.de depuis une IP américaine peut déclencher des redirections ou montrer des données qu’un acheteur allemand ne verrait pas. Accordez le pays de l’IP au domaine (amazon.de depuis une IP DE) pour des données précises.
Ai-je besoin d’un navigateur headless pour Amazon ? Généralement non. La plupart des champs produits, prix, titre, note, disponibilité, sont dans le HTML initial, donc une requête HTTP simple est plus rapide et bien moins chère en bande passante. Réservez un navigateur aux pages véritablement dépendantes de JavaScript.
Proxys résidentiels ou datacenter pour Amazon ? Résidentiels. Amazon détecte et bloque agressivement les IP de datacenter, donc le datacenter vous donne des Robot Checks et des 503. Les IP résidentielles voient la vraie fiche géo-précise qu’un vrai acheteur verrait.
Est-il légal de scraper Amazon ? Les données produits publiques sont généralement des données publiques, et les collecter est largement correct quand c’est fait de façon responsable, en respectant les conditions et rate limits et en évitant les données personnelles. Les CGU d’Amazon restreignent l’accès automatisé, donc limitez-vous aux données publiques et obtenez un conseil juridique pour tout ce qui est incertain. Un proxy ne change pas la légalité de l’activité sous-jacente.
En résumé
Amazon est une mine d’or de données produits publiques, mais divisé par marketplace, géo-personnalisé, et l’un des sites les plus difficiles à scraper sans se faire bloquer. La recette est simple : passer par une IP résidentielle qui correspond au pays de la marketplace, récupérer le HTML avec un client réaliste, parser défensivement, tourner à grande échelle, et gérer les Robot Checks en changeant d’IP plutôt qu’en poussant plus fort. Faites cela et vous obtenez les vrais prix, avis, et classements que voit un acheteur, dans chaque marketplace que vous suivez.
L’élément décisif, c’est la qualité d’IP, des IP résidentielles propres signifient la vraie fiche au lieu d’un Robot Check. Un réseau de proxys résidentiels de qualité est la couche d’accès qui rend le scraping d’Amazon fiable, et c’est le même socle derrière la surveillance des prix et l’analytique du rayon digital. La page tarifs propose les forfaits au Go pour l’essayer contre les ASIN et marketplaces qui vous importent.