Amazon es el conjunto de datos de productos más grande de la web abierta, y scrapearlo, precios, reseñas, rankings, disponibilidad, impulsa la monitorización de precios, la analítica del estante digital, la investigación de mercado, y la inteligencia competitiva. También es uno de los sitios más agresivamente defendidos a los que jamás apuntarás un scraper. Haz mal la configuración y te encuentras con la página de “Robot Check”, un 503, o datos del país equivocado en un puñado de peticiones.
Esta es una guía práctica para hacerlo bien: qué puedes sacar de una página de producto de Amazon, por qué se rompe sin la infraestructura correcta, y cómo recolectarlo limpiamente a través de proxies residenciales. La versión corta: Amazon está dividido por geografía según el marketplace y es duro con los bots, así que tienes que obtener como un comprador real en el país correcto, que es exactamente para lo que sirven los proxies residenciales.
Qué puedes scrapear de una página de producto de Amazon
Un listado de Amazon es denso en datos públicos y estructurados. Los campos que los equipos recolectan más:
- Precio e info de ofertas — precio actual, precio de lista, descuentos, y cupones.
- Disponibilidad y buy box — en stock o no, y qué vendedor gana la buy box.
- Best Sellers Rank (BSR) — el ranking de Amazon dentro de una categoría, un proxy de la demanda.
- Valoraciones y reseñas — valoración en estrellas, recuento de reseñas, y texto de reseñas.
- Detalle de producto — título, bullets, descripción, imágenes, variaciones, y especificaciones.
- Info del vendedor — el vendedor y los detalles de envío en la oferta.
Todo ello está en la página pública. La trampa es que Amazon decide qué página mostrarte según dónde parezcas estar y si pareces un comprador real.
Por qué Amazon es difícil: es un problema de proxy
Tres propiedades de Amazon convierten scrapearlo en un problema de acceso que aterriza en la capa de proxy.
Amazon está dividido por marketplace, y geo-personalizado. Amazon corre marketplaces separados por país, amazon.com, amazon.de, amazon.co.uk, amazon.co.jp, y cada uno tiene precios, disponibilidad, vendedores, e incluso catálogo distintos. Encima de eso, un único marketplace personaliza el precio y la entrega según la ubicación del comprador. Obtén amazon.de desde una IP de EE. UU. y puedes recibir un redirect, una experiencia distinta, o una disponibilidad que un comprador alemán nunca vería. Para capturar un marketplace con precisión, tienes que venir de ese país, que es para lo que sirve el targeting de país y ciudad.
Amazon se defiende con fuerza contra los bots. Las IPs de datacenter se marcan rápido y reciben el CAPTCHA “Robot Check”, un 503, o throttling, así que registras la versión de bot, no la página del comprador. (Por qué se bloquean los scrapers cubre la mecánica.) Las IPs residenciales llevan confianza de usuario real, así que Amazon te sirve el listado real.
La cobertura es de alto volumen y repetida. Rastrear muchos ASINs a través de marketplaces cada día es un montón de peticiones. Desde un puñado de IPs disparas rate limits rápido y obtienes una muestra parcial y plagada de bloqueos. Un gran pool rotativo es lo que mantiene el crawl completo.
El arreglo para las tres es el mismo: obtener desde IPs residenciales que coincidan con el país del marketplace, rotando a escala.
Paso 1: enruta por una IP residencial en el país correcto
En el gateway de Shifter, eliges un país codificándolo en el nombre de usuario del proxy, un endpoint, sin listas de IPs. Haz coincidir el país del proxy con el dominio del marketplace: amazon.com desde una IP de EE. UU., amazon.de desde una IP alemana.
# amazon.com como un comprador de EE. UU.curl -x customer-USERNAME-country-us:PASSWORD@p.shifter.io:443 \ "https://www.amazon.com/dp/B0EXAMPLE"
# amazon.de como un comprador alemáncurl -x customer-USERNAME-country-de:PASSWORD@p.shifter.io:443 \ "https://www.amazon.de/dp/B0EXAMPLE"Cada producto tiene un ASIN estable (el código B0... en la URL /dp/ASIN), así que una vez que tienes tu lista de ASINs, el patrón de URL es predecible a través de los marketplaces.
Paso 2: obtén y parsea en código
Rara vez necesitas un navegador para los datos de producto de Amazon, la mayoría está en el HTML inicial, así que un cliente HTTP simple es más rápido y mucho más barato en ancho de banda. Aquí está la forma en Python (ve proxies residenciales con Python para la configuración completa del cliente):
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"))Dos cosas importan más que los selectores: envía un User-Agent y un Accept-Language realistas que coincidan con el país de tu proxy, y espera que el markup de Amazon cambie, así que trata cada selector como opcional y valida lo que extraes. Para las reseñas, pide las páginas de reseñas y pagina; para el BSR, normalmente está en la sección de “Información del producto” / detalle.
Paso 3: rota, y mantén sesiones donde ayude
- Rota por petición para el scraping amplio de catálogo a través de muchos ASINs, omite cualquier id de sesión para que cada petición obtenga una IP fresca.
- Mantén una sesión sticky cuando pagines a través de las reseñas de un único producto o un flujo de varios pasos, para que la secuencia parezca un comprador. Añade
-sid-<id>-ttl-<segundos>al nombre de usuario.
Como la calidad de IP decide con qué frecuencia ves la página real frente a un Robot Check, entender la reputación de IP te ayuda a mantener el crawl limpio.
Paso 4: maneja los bloqueos y mantén bajo el ancho de banda
Cuando Amazon sirve un CAPTCHA/Robot Check o un 503, no martilles, rota a una IP fresca, aplica backoff, y reintenta. Los bloqueos consistentes (no los ocasionales) apuntan a la calidad de IP o al comportamiento de las peticiones, cubierto en cómo evitar que te bloqueen al scrapear.
Si una página genuinamente necesita JavaScript y recurres a un navegador, bloquea imágenes, media, y fuentes para no pagar por-GB por píxeles que nunca parseas, la técnica está en cómo recortar los costes de ancho de banda de proxy. Para la mayoría de los campos de producto de Amazon, el HTTP simple basta y es lo más barato.
Usarlo de forma responsable
Scrapea solo datos de producto públicos, listados, precios, valoraciones, y texto de reseñas que cualquier comprador puede ver, y aléjate de los datos personales, las identidades de los reseñadores y cualquier información personal adjunta a las reseñas no son terreno legítimo. Honra los términos y rate limits de Amazon, no degrades el sitio, y ten en cuenta que los términos de servicio de Amazon restringen el acceso automatizado, así que mantén la recolección a datos públicos y obtén asesoramiento legal para cualquier cosa incierta (ve ¿es legal el web scraping?). Un proxy cambia desde qué IP viene una petición, no si deberías estar haciéndola; nuestra política de uso aceptable es la fuente de la verdad para lo que está permitido en Shifter.
Preguntas frecuentes
¿Puedo scrapear Amazon sin proxies? No de forma fiable a ninguna escala. Amazon marca rápido el tráfico de datacenter y de IP repetida con CAPTCHAs y 503s, y solo verías el marketplace de un país. Los proxies residenciales te dejan obtener como un comprador real en cada país objetivo.
¿Por qué necesito que el país del proxy coincida con el marketplace?
Porque los marketplaces de Amazon son por país y geo-personalizados. Obtener amazon.de desde una IP de EE. UU. puede disparar redirects o mostrar datos que un comprador alemán no vería. Haz coincidir el país de la IP con el dominio (amazon.de desde una IP DE) para datos precisos.
¿Necesito un navegador headless para Amazon? Normalmente no. La mayoría de los campos de producto, precio, título, valoración, disponibilidad, están en el HTML inicial, así que una petición HTTP simple es más rápida y mucho más barata en ancho de banda. Reserva un navegador para páginas genuinamente dependientes de JavaScript.
¿Proxies residenciales o de datacenter para Amazon? Residenciales. Amazon detecta y bloquea las IPs de datacenter agresivamente, así que datacenter te da Robot Checks y 503s. Las IPs residenciales ven el listado real y geo-preciso que vería un comprador genuino.
¿Es legal scrapear Amazon? Los datos de producto públicos son generalmente públicos, y recolectarlos es ampliamente correcto cuando se hace de forma responsable, respetando términos y rate limits y evitando datos personales. Los ToS de Amazon restringen el acceso automatizado, así que mantenlo a datos públicos y obtén asesoramiento legal para cualquier cosa incierta. Un proxy no cambia la legalidad de la actividad subyacente.
En resumen
Amazon es una mina de oro de datos de producto públicos, pero está dividido por marketplace, geo-personalizado, y es uno de los sitios más difíciles de scrapear sin ser bloqueado. La receta es sencilla: enruta por una IP residencial que coincida con el país del marketplace, obtén el HTML con un cliente realista, parsea defensivamente, rota a escala, y maneja los Robot Checks cambiando de IP en lugar de empujar más fuerte. Haz eso y obtienes los precios, reseñas, y rankings reales que ve un comprador, en cada marketplace que rastrees.
La pieza que lo hace o lo rompe es la calidad de IP, IPs residenciales limpias significan el listado real en lugar de un Robot Check. Una red de proxies residenciales de calidad es la capa de acceso que hace fiable el scraping de Amazon, y es la misma base detrás de la monitorización de precios y la analítica del estante digital. La página de precios tiene los planes por GB para probarla contra los ASINs y marketplaces que te importan.