La Guía Definitiva para Raspar Datos de Amazon en 2026
Resumen
Las páginas de productos de Amazon tienen más campos scrapeables que solo el precio: título, precio, calificación de estrellas, número de reseñas, ASIN, imágenes, disponibilidad y vendedor de la Buy Box están presentes en el HTML de la página, sin necesidad de iniciar sesión.
El robots.txt de Amazon y las Condiciones de Uso restringen el acceso automatizado, y la herramienta de fetch de esta sesión fue rechazada cuando intentó cargar una URL de amazon.com directamente; trate cualquier proyecto de scraping como uno que necesita una revisión de cumplimiento, no solo técnica.
La API oficial de Publicidad de Productos de Amazon (PA-API 5.0) está en desuso. Las llamadas ahora devuelven un HTTP 403 diciendo a los llamadores que migren a la nueva API de Creadores, que requiere registro activo en Amazon Associates y al menos 10 ventas calificativas en los últimos 30 días; una barrera que la mayoría de los equipos no afiliados no puede superar.
Esa brecha es exactamente por qué una API de crawling gestionada es el camino práctico entre la API oficial ahora restringida y la construcción de un stack anti-bot desde cero; Nstproxy Crawl maneja el renderizado de JavaScript y el enrutamiento de proxy, por lo que el código del tutorial a continuación solo tiene que manejar el parsing.
Una sola página de producto y una página de resultados de búsqueda utilizan diferentes patrones de selector. Las páginas de productos se basan en IDs como #productTitle; las páginas de resultados de búsqueda se basan en el atributo data-asin de cada bloque [data-component-type="s-search-result"].
El mismo scraping puede convertirse en un rastreador de precios con aproximadamente diez líneas de código extra. El consejo adicional a continuación convierte la solicitud única en un bucle programado, y Nstproxy Proxy Manager es el siguiente paso natural una vez que ese bucle se ejecute en docenas de SKUs o mercados a la vez.
Las páginas de productos y resultados de búsqueda de Amazon exponen el título del producto, precio actual, calificación de estrellas, número de reseñas, ASIN, URL de la imagen principal, estado de stock/disponibilidad y, en la página del producto, el vendedor que actualmente gana la Buy Box, todo dentro de un HTML que se muestra sin iniciar sesión. Las reseñas de clientes llevan campos adicionales (texto de reseña, calificación de estrellas, bandera de "compra verificada") pero también un nombre que muestra el revisor, que cuenta como datos personales y merece el mismo tratamiento de minimización que cualquier otro identificador personal recogido de una página pública.
Los equipos suelen extraer estos datos por una de cuatro razones: monitoreo de precios competitivos en un catálogo, investigación de mercado sobre clasificaciones de categorías y sentimiento de reseñas, verificaciones de cumplimiento de MAP (precio mínimo publicitado) para las propias listaciones de una marca y investigación de leads o assortiment antes de ingresar a un nuevo mercado. Las cuatro son variaciones sobre el mismo trabajo subyacente: obtener una página, extraer un conjunto estable de campos, repetir en un cronograma; lo cual es el patrón que construye este tutorial.
Echa un vistazo rápido
Amazon renderiza precios y disponibilidad con JavaScript y bloquea la mayoría de las IPs no rotadas dentro de un puñado de solicitudes; Nstproxy Crawl maneja el renderizado del navegador y el enrutamiento proxy en una llamada API, por lo que el código a continuación solo tiene que analizar la página que recibe.
La legalidad depende de lo que se recoja y cómo, no de si es posible raspar Amazon. El robots.txt de Amazon prohíbe el crawling automatizado de la mayoría de los caminos; la herramienta de investigación de este artículo fue rechazada cuando intentó obtener una URL de amazon.com directamente, lo cual es una ilustración útil de cuán ampliamente se aplica esa restricción; y las Condiciones de Uso de Amazon prohíben por separado las herramientas de minería de datos sin permiso. Ninguno de esos hechos resuelve la pregunta legal por sí solo: en hiQ Labs v. LinkedIn, el Noveno Circuito encontró que raspar datos de perfil accesibles públicamente probablemente no violaba la Ley de Fraude y Abuso Informático, y en Van Buren v. United States, la Corte Suprema redujo la CFAA al acceso no autorizado en lugar de uso indebido de datos de otro modo accesibles. Craigslist v. 3Taps apunta en la otra dirección: continuar raspando después de un bloqueo explícito o un aviso de cese y desistimiento aumenta sustancialmente la exposición legal.
En la práctica, una práctica de bajo riesgo se parece a la recolección de listados públicamente visibles, precios y disponibilidad a una tasa de solicitud razonable, enfocándose en los metadatos del mercado en lugar de la información personal del revisor, y prefiriendo una API oficial cuando un proyecto califica para una. Una práctica de mayor riesgo se parece a la extracción detrás de un inicio de sesión, la recolección de datos personales o de pago, eludir CAPTCHA u otros bloqueos técnicos explícitos, y continuar después de que Amazon ya ha estrangulado o bloqueado la fuente. Este tutorial se mantiene en la primera categoría: datos de catálogo públicamente visibles, sin eludir la autenticación y sin orientación sobre cómo vencer los desafíos de CAPTCHA.
API Oficial vs. Scraper DIY vs. API de Rastreo Gestionada
Tres caminos llegan a los mismos datos del producto, y la elección se reduce principalmente a la elegibilidad y cuánto infraestructura anti-bot un equipo quiere poseer. La propia API de Publicidad de Productos de Amazon (PA-API 5.0) fue la fuente de menor riesgo durante años, pero Amazon la ha desaprobado: una llamada al antiguo punto final ahora devuelve un HTTP 403 instruyendo a los desarrolladores a migrar a la nueva API de Creadores, que requiere una inscripción activa en el programa de Asociados de Amazon y al menos 10 ventas calificadas en los últimos 30 días. Esa barrera de elegibilidad descarta a la mayoría de los equipos que realizan monitoreo de precios, investigación de mercado o cumplimiento de MAP que no están ejecutando ya una tienda afiliada activa. Un scraper totalmente DIY (requests o Playwright más BeautifulSoup) es el segundo camino, pero significa construir y mantener la renderización de JavaScript, la rotación de proxies y la lógica de reintentos internamente antes de escribir una sola línea de código de extracción, y Amazon cambia su marcado con suficiente frecuencia como para que el costo de mantenimiento se acumule. Nstproxy Crawl es el tercer camino, y el resto de este tutorial se basa en él.
Nstproxy Crawl es una API que convierte una URL en Markdown, HTML limpio o datos de página en bruto a través de una sola solicitud, con renderización de JavaScript en un navegador real y el propio grupo de proxies de Nstproxy manejando la capa de red subyacente; las dos piezas que un scraper DIY de Amazon de otro modo tiene que ensamblar por sí mismo. Se adapta específicamente a este trabajo porque las páginas de productos y búsqueda de Amazon dependen de la renderización del lado del cliente para el precio y la disponibilidad, y porque un scraper que golpea a Amazon desde una única IP estática es limitado en su tasa o bloqueado dentro de un número pequeño de solicitudes. La API cobra por cada obtención exitosa en lugar de por intento, por lo que una página que devuelve un 403 o 404 aún cuenta como facturable (la solicitud en sí tuvo éxito) pero un reintento que nunca llega a Amazon en absoluto no.
Renderización de JavaScript incluida — las páginas de productos y búsqueda que dependen de scripts del lado del cliente para el precio y el estado de stock se renderizan completamente antes de que la API devuelva un resultado, en lugar de devolver una estructura parcialmente cargada.
Enrutamiento de proxy manejado automáticamente — las solicitudes se enrutan a través del grupo residencial o de centro de datos de Nstproxy sin un proveedor de proxy separado o un script de rotación de IP que mantener.
Salida en Markdown o HTML — el tutorial a continuación analiza el HTML devuelto directamente, pero la salida en Markdown funciona igual de bien para los equipos que alimentan los resultados en un resumidor basado en LLM en lugar de un parser fijo.
Prerequisitos
Antes de escribir cualquier código, obtén una clave API del tablero de Nstproxy e instala los paquetes de Python que este tutorial utiliza:
pip install requests beautifulsoup4
requests llama a la API de Nstproxy Crawl; beautifulsoup4 analiza el HTML que regresa. No se requiere una cuenta de Amazon, inicio de sesión o instalación de navegador de tu parte: Nstproxy Crawl ejecuta el lado del navegador.
Paso 1: Extraer una Página de Producto de Amazon
Envía la URL del producto al endpoint de extracción de Nstproxy Crawl, solicitando tanto markdown como html. Agregar ?async=true hace que la llamada sea sincrónica: espera a que la página termine de renderizar y devuelve el resultado directamente, en lugar de devolver un ID de tarea para consultar:
Verificar result["success"] es importante aquí; un HTTP 200 solo confirma que Nstproxy Crawl recibió la solicitud, no que Amazon devolvió una página de producto utilizable. onlyMainContent está configurado como False porque el precio y los widgets de Buy Box en una página de producto de Amazon están fuera de lo que un heurístico genérico de "contenido principal" mantendría.
Paso 2: Analizar Título, Precio, Calificación y ASIN
La página de producto de Amazon utiliza identificadores de elementos estables en lugar de nombres de clase CSS generados para sus campos principales, lo que los hace dignos de ser objetivos directos en lugar de raspar texto visible:
from bs4 import BeautifulSoup
import re
soup = BeautifulSoup(page_html,"lxml")title_el = soup.select_one("#productTitle")title = title_el.get_text(strip=True)if title_el elseNoneprice_el = soup.select_one("#corePrice_feature_div span.a-offscreen")price = price_el.get_text(strip=True)if price_el elseNonerating_el = soup.select_one("#acrPopover")rating = rating_el.get("title","").replace(" de 5 estrellas","")if rating_el elseNoneasin_match = re.search(r"/dp/([A-Z0-9]{10})", page_html)# El ASIN vive en la URL canónica, no en un elemento dedicadoasin = asin_match.group(1)if asin_match elseNoneproduct ={"asin": asin,"title": title,"price": price,"rating": rating}print(product)
Cada llamada a select_one está protegida con un valor de retorno a None en lugar de permitir que un elemento faltante genere una excepción; Amazon utiliza diferentes diseños de página para pruebas A/B, por lo que un selector que coincide con la mayoría de los listados ocasionalmente puede perder uno. Construir cada campo defensivamente, de la forma en que BeautifulSoup y lxml se utilizan comúnmente juntos para el análisis HTML, evita que un widget faltante haga que toda una tarea por lotes falle.
Paso 3: Raspar una Página de Resultados de Búsqueda de Amazon para Múltiples ASINs
Una página de resultados de búsqueda devuelve muchos productos en una sola solicitud, lo que es más eficiente que raspar páginas de productos una a la vez cuando el objetivo es un snapshot de categoría en lugar de un detalle profundo sobre un solo artículo. La solicitud a Nstproxy Crawl se ve igual que el Paso 1, solo que dirigida a una URL de búsqueda:
Cada tarjeta de resultado lleva su ASIN en un atributo data-asin, que es un ancla mucho más estable que cualquier presentación visual; filtrar las tarjetas sin data-asin también elimina silenciosamente colocaciones patrocinadas y widgets de diseño que no son resultados de productos reales.
Esquema de Salida de Ejemplo
Ya sea que la fuente fuera una sola página de producto o una página de resultados de búsqueda, normalizar al mismo esquema mantiene simple el almacenamiento y la comparación en downstream:
{"asin":"B0BSHF7WHW","title":"Ejemplo de Auriculares Inalámbricos","price":"$49.99","rating":"4.3","review_count":2148,"availability":"En Stock","scraped_at":"2026-08-17T10:00:00Z"}
Almacenar scraped_at junto con el resto del registro es lo que hace posible la siguiente sección; sin una marca de tiempo, no hay forma de saber si un precio cambió o si el raspado se realizó en un momento diferente.
Consejo Adicional: Convierte Esto en un Rastreador de Precios Siempre Activo
Un solo raspado responde "¿cuál es el costo ahora mismo?"; un bucle programado responde "¿esto cambió?" — que es la pregunta más útil para la conformidad con MAP o el monitoreo competitivo. Envolver la solicitud del Paso 1 en un programador y hacer una diferencia con respecto al último precio almacenado logra esto con una pequeña adición:
try:
with open(PRICE_HISTORY_FILE) as f:
history = json.load(f)
except FileNotFoundError:
history = {}
if history.get(asin) != current_price:
print(f"Cambio de precio para {asin}: {history.get(asin)} -> {current_price}")
history[asin] = current_price
with open(PRICE_HISTORY_FILE, "w") as f:
json.dump(history, f)
Intercambia el print por una llamada a un webhook de Slack o un correo electrónico y esto se convierte en un pipeline de alertas real en lugar de un registro en consola. Una vez que ese bucle se ejecuta contra docenas de ASINs en múltiples marketplaces o dominios regionales en lugar de uno, el cuello de botella operativo suele cambiar de la lógica de análisis a la gestión de proxies y credenciales: ese es el momento en que centralizar las reglas de enrutamiento, la asignación de grupos por proyecto y el monitoreo a través de Nstproxy Proxy Manager vale la pena agregarlo además de la lógica de scraping en sí, en lugar de asignar proxies manualmente por script.
Observaciones y límites
Los cambios en los márgenes de Amazon ocurren con suficiente frecuencia como para que cualquier lista de selectores, incluidas las anteriores, deba tratarse como actual a la fecha de hoy en lugar de permanente: los cheques defensivos None en cada campo son lo que impide que un ajuste de diseño haga que un trabajo por lotes se bloquee en lugar de simplemente devolver un registro incompleto. Los límites de tasa son reales incluso con la rotación de proxies manejada: espaciar las solicitudes y mantener la concurrencia a un nivel modesto reduce la posibilidad de activar los umbrales de detección de bots de Amazon, y ninguna capa de proxy hace que un rastreo de Amazon de alta concurrencia e ilimitado sea una buena idea. Los datos de revisión llevan nombres de pantalla de los revisores, que son datos personales incluso cuando son visibles públicamente: minimiza lo que se almacena y por cuánto tiempo si las reseñas son parte de un scraping. Finalmente, ninguno de los códigos anteriores funciona en páginas que requieren resolver un desafío CAPTCHA o iniciar sesión; ambos son señales explícitas para detenerse en lugar de problemas para evitar.
Conclusión
Scraping de datos de productos de Amazon es menos acerca de encontrar un bypass inteligente y más sobre elegir la capa correcta para resolver los problemas de renderizado de JavaScript y reputación IP que una llamada estática requests.get() no puede manejar por sí sola. Con la API oficial de Publicidad de Productos de Amazon ahora restringida detrás de un requisito de ventas asociado más volumen, la mayoría de los equipos no podrán cumplir, una API de rastreo gestionada que maneje renderizado y enrutamiento de proxies — emparejada con los mismos patrones de análisis defensivos mostrados anteriormente — es el punto medio práctico entre una API oficial demasiado restringida y un stack anti-bot auto-mantenido.
Q: ¿Es legal hacer scraping de los datos de productos de Amazon?
Hacer scraping de datos de listados visibles públicamente (precio, título, calificación) conlleva un riesgo legal menor que hacer scraping detrás de un inicio de sesión o continuar después de un bloqueo explícito, basado en jurisprudencia como hiQ Labs v. LinkedIn y Craigslist v. 3Taps, pero el propio robots.txt y las Condiciones de Uso de Amazon restringen el acceso automatizado: revisar ambos antes de comenzar un proyecto es más importante que cualquier truco técnico único.
Q: ¿Puedo usar la API oficial de Amazon en lugar de hacer scraping?
La API de Publicidad de Productos de Amazon (PA-API 5.0) está obsoleta y ahora devuelve un HTTP 403 dirigiendo a los llamadores a la API de Creadores, que requiere la inscripción activa de Amazon Associates más al menos 10 ventas calificativas en los últimos 30 días — una barrera que excluye a la mayoría de los equipos que hacen monitoreo de precios o investigación de mercado en lugar de ejecutar una tienda de afiliados.
Q: ¿Por qué falla una llamada estática requests.get() en las páginas de productos de Amazon?
Los widgets de precio y disponibilidad en las páginas de productos de Amazon dependen de JavaScript del lado del cliente para terminar de renderizar, por lo que un cliente HTTP simple sin un renderizador capaz de JavaScript detrás de él a menudo recibe una página incompleta o se bloquea por completo después de un puñado de solicitudes desde la misma IP.
Q: ¿Cómo encuentro el ASIN de un producto sin abrir la página?
En una página de resultados de búsqueda, cada bloque de resultado lleva su ASIN directamente en un atributo data-asin ([data-component-type="s-search-result"]), lo que evita la necesidad de abrir cada página de producto solo para recoger su identificador.
Q: ¿Necesito un proxy para hacer scraping de Amazon a gran escala?
Sí, para cualquier cosa más allá de un puñado de solicitudes manuales: Amazon impone límites y bloqueos basados en la reputación IP y los patrones de solicitudes, por lo que una sola IP estática se degrade rápidamente, mientras que un grupo rotativo residencial o de centro de datos mantiene un trabajo de monitoreo en funcionamiento sin un desbloqueo manual constante.
P: ¿Qué debo hacer si encuentro un CAPTCHA?
Detente y retrocede en lugar de intentar resolverlo o encontrar una forma de eludirlo; un CAPTCHA es una señal explícita de Amazon de que el patrón de solicitudes actual parece automatizado, y continuar de todos modos está en la categoría de mayor riesgo descrita anteriormente.
P: ¿Puedo extraer opiniones de clientes de Amazon?
El texto de la opinión y las calificaciones por estrellas son visibles en la página de la misma manera que el precio y el título, pero las opiniones también incluyen un nombre de usuario del revisor, que es datos personales; minimizar lo que se almacena, por cuánto tiempo y con qué propósito es algo que vale la pena decidir antes de recopilar datos de opiniones en lugar de después.
¿Qué son las APIs de noticias? Las mejores APIs de noticias en 2026.
¿Qué es una API de noticias y cuál es la mejor en 2026? Una comparación clasificada y verificada de NewsAPI.org, GNews, NewsData.io, Mediastack, la Plataforma Abierta de The Guardian, la API del NYT, GDELT y WorldNewsAPI, además de cómo una API de rastreo de propósito general como Nstproxy Crawl llena los vacíos que ninguna de ellas cubre.
Ivy Lin
Aug. 17th 2026
110M+ IP reales con 99.9% de acceso exitoso
Respuesta media ultrarrapida ~0.5s para tareas de alta concurrencia
Desde solo $0.1/GB
Acceso inmediato a pools premium de proxies residenciales, datacenter, IPv6 e ISP.