Cómo construir un raspador de Amazon con Scrapeless Agent Browser: Una guía paso a paso para 2026.
Advanced Data Extraction Specialist
Puntos Clave:
- Renderizado dinámico, no HTML sin procesar. Las páginas de detalles de productos de Amazon, los resultados de búsqueda y las reseñas se hidratan del lado del cliente: Scrapeless Agent Browser las renderiza en un verdadero navegador en la nube. En Amazon específicamente,
wait --load networkidleno se estabiliza (los flujos de anuncios/beacons cargados de manera perezosa siguen activándose); utilizawait 1500y luegowait '<stable-selector>'(por ejemplo,#productTitleen PDPs,[data-asin]:not([data-asin=""])en páginas/s). - Enrutamiento geográfico por sesión.
--proxy-country,--proxy-state,--proxy-city,--timezoney--languagesmantienen cada solicitud consistente en el local a través de.com,.co.uk,.dey.co.jp. - Flujo de Descubrir → Extraer. Amazon rota nombres de clases y ganchos de atributos en variantes A/B. Lee el DOM con
get htmlantes de escribir selectores, luego extrae coneval— nunca codifiques en duro nombres de clases en el código enviado. - Una sesión nueva por operación lógica. En la práctica, las sesiones de Scrapeless permanecen limpias para 2–3 fetches consecutivos de páginas hidratadas. Más allá de eso, comienzan a devolver
chrome://new-tab-pageo terminan en silencio. Genera una nueva sesión por página o por pequeños lotes en lugar de reutilizar una sesión de larga duración para más de 20 solicitudes.
Introducción
Amazon es la superficie de datos de productos más grande en la web abierta: inteligencia de precios, minería de reseñas, monitoreo de clasificación de Best Sellers, cumplimiento de MAP y protección de marca fluyen desde las mismas páginas de listado público. La API oficial de Publicidad de Productos tiene ciclos de aprobación restringidos y no expone cuerpos de reseñas, series temporales de BSR o datos de vendedores competidores; por lo tanto, la mayoría de las serias canalizaciones de datos de Amazon aún raspan.
Un scraper moderno de Amazon tiene que lidiar simultáneamente con varias realidades: las páginas están hidratadas en JavaScript, los nombres de clases rotan entre variantes A/B, las cookies y el estado de localización necesitan persistir a través de solicitudes paginadas, y el filtrado basado en la reputación de IP trata la salida del centro de datos de manera severa. Manejar esas cuatro preocupaciones en un cliente HTTP sin procesar, o un Playwright instalado localmente, añade semanas de mantenimiento que nadie quiere asumir.
Esta guía recorre un flujo de trabajo orientado a terminal sobre Scrapeless Agent Browser que maneja las partes que normalmente consumen semanas: huellas digitales de anti-detección, proxies residenciales, renderizado dinámico y consistencia de localización entre mercados — todo a través de un único CLI scrapeless-scraping-browser.
Lo Que Puedes Hacer Con Esto
- Precios competitivos dinámicos. Rastrea los precios de ASIN de los competidores en tiempo real en
.com, alimenta la señal en reglas de reajuste de precios y monitorea ventanas promocionales sin ejecutar navegadores locales. - Monitoreo de cumplimiento de MAP. Escanea listados de minoristas y ofertas de vendedores de terceros contra tu precio mínimo publicitado establecido por el fabricante, marcando violaciones a medida que aparecen.
- Señal de reseñas en PDP. Agrupa las principales reseñas presentadas en cada PDP (5–10 reseñas por ASIN a través de la extracción del Paso 3) — suficiente para la detección de tendencias y el monitoreo de reputación de manera continua. La minería de reseñas en todo el corpus a través de
/product-reviews/*requiere sesiones autenticadas en 2026; consulta el Paso 5. - Monitoreo de inventario y disponibilidad. Monitorea agotamientos de stock, cambios en la elegibilidad para Prime y cambios en los tiempos de entrega de envío a través de ASINs para anticipar la presión de la cadena de suministro.
- Inteligencia de BSR y clasificación. Obtén el rango de Best Sellers a través de categorías y subcategorías para dimensionamiento del mercado, seguimiento de lanzamientos y análisis de participación de categoría.
- Protección de marca. Detecta listados falsificados, vendedores no autorizados de terceros y violaciones de marcas registradas en vitrinas de mercado.
Por Qué Scrapeless Agent Browser
Scrapeless Agent Browser es un navegador en la nube personalizable y anti-detección diseñado para rastreadores web y Agentes de IA. Para Amazon específicamente, ofrece:
- Proxies residenciales en más de 195 países (
--proxy-country,--proxy-state,--proxy-city) para egress a localización coincidente — el elemento básico para mantenerse alejado de la intersticial anti-bot de Amazon en primer lugar. - Huellas digitales de anti-detección en cada sesión, por lo que las páginas se renderizan de manera idéntica al tráfico orgánico.
- Persistencia de sesión a través de
--session-iden solicitudes paginadas, por lo que las cookies, el carrito y el contexto Prime permanecen consistentes de página a página. - Renderizado en JavaScript en el navegador en la nube, asegurando un DOM hidratado para bloques de precios, banners de disponibilidad, cuerpos de reseñas cargadas de manera perezosa y contenido A+.
- Alineación de localización por sesión —
--timezoney--languagesse alinean automáticamente con la geografía del proxy seleccionado.
Obtén tu clave API en el plan gratuito en scrapeless.com. Productos relacionados de Scrapeless: API de Rasppado Universal, Soluciones de Proxy y el Servidor MCP de Scrapeless para integraciones de Protocolo de Contexto de Modelo.
Si una superficie estilo API se ajusta mejor a tu flujo de trabajo que un navegador, consulta las guías de acompañamiento Amazon Scraper API y Scraping Amazon Product Data. Para un centro de soluciones completo enfocado en Amazon, visita scrapeless.com/en/solutions/amazon.
Requisitos previos
- Node.js 18 o más reciente.
- Una cuenta en Scrapeless y una clave API: regístrate en scrapeless.com.
jq(opcional, para análisis de JSON en scripts de shell; a continuación se muestra un recurso alternativo portátil).- Familiaridad básica con la terminal.
Instalación
Las recetas a continuación se ejecutan en el CLI scrapeless-scraping-browser. La configuración se realiza en tres pasos; tanto los usuarios del CLI como los usuarios de agentes de IA necesitan realizar los pasos #1 y #2; los usuarios de agentes de IA también realizan el paso #3.
1. Instala el paquete CLI
bash
npm install -g scrapeless-scraping-browser
Esto proporciona el binario scrapeless-scraping-browser que se invoca en cada paso de esta guía. La habilidad no trae su propio entorno de ejecución; carga patrones de comando en tu agente de IA, pero el CLI debe estar instalado primero.
2. Configura tu clave API
Obtén tu token de scrapeless.com, luego guárdalo donde el CLI pueda leerlo:
bash
scrapeless-scraping-browser config set apiKey your_api_token_here
scrapeless-scraping-browser config get apiKey # verifica
¿Usando un agente de IA? Las instrucciones de la habilidad le dicen explícitamente a tu agente que la autenticación es necesaria antes de cualquier llamada a sesión. Si la clave API no se establece cuando el agente intenta usar el CLI por primera vez, el agente te pedirá que lo hagas y ejecutará el comando config set apiKey … por ti; puedes configurarlo manualmente ahora (comandos anteriores) o pegar tu token cuando el agente lo solicite.
El archivo de configuración se encuentra en ~/.scrapeless/config.json con acceso restringido al usuario actual, tiene prioridad sobre la variable de entorno y es portátil entre agentes y ejecutores de CI. Para pipelines de CI, se prefiere:
bash
export SCRAPELESS_API_KEY=your_api_token_here
3. Instala la habilidad de Scrapeless en tu agente de IA
Este es un paso separado del paso 1 mencionado anteriormente. El paso 1 instaló el binario CLI; el entorno de ejecución que tu agente invoca. La habilidad es lo que enseña a tu agente cómo invocarlo correctamente (selectores, esperas, patrones de reintento, el flujo de descubrir→extraer). Son dos cosas diferentes, y necesitas ambas.
La habilidad es una carpeta que contiene SKILL.md + skill.json + references/. La fuente canónica es el repositorio scrapeless-ai/scrapeless-agent-browser → skills/scraping-browser-skill en GitHub.
Para instalarla en Claude Code, Cursor, VS Code + GitHub Copilot, OpenAI Codex CLI o Gemini CLI, sigue la guía de instalación del agente de Scrapeless AI; contiene los comandos de copiar y pegar por agente (bash y Windows PowerShell). Reinicia tu agente después de la instalación para que la habilidad se active.
Sin la habilidad instalada, tu agente no conoce el patrón descubrir→extraer, las esperas específicas para cada motor, ni los selectores que realmente funcionan en 2026, y tendrías que proporcionarle cada detalle en cada solicitud.
Lo que la habilidad carga en el contexto operativo de tu agente por adelantado:
- Autenticación: verifica
~/.scrapeless/config.jsonoSCRAPELESS_API_KEYy te solicita que lo configures si falta (ver paso 2). - Flujo de trabajo de Descubrir → Extraer: el patrón de antifragilidad. El agente lee el DOM en vivo con
get html "<region>"primero, identifica anclas estables (data-*atributos,aria-label,role, IDs semánticos), luego escribe selectoresevalbasados en lo que realmente se rinde: en lugar de adivinar nombres de clases de utilidad que rotan entre variantes A/B y que se rompen en semanas. - Sintaxis de selectores: cuándo usar selectores CSS (
#productTitle,[data-asin]) frente a referencias de accesibilidad (@e1desnapshot -i). - Trampas de espera:
wait 1500entreopenywait --load networkidlepara evitar la carrera de la página en fríochrome://new-tab-page;wait <selector>contra un elemento de la página objetivo cuando networkidle no se estabiliza. - Trabajadores de CLI paralelos: encadenamiento de una sola shell
&&, nombres de sesión únicos, ≤3 trabajadores concurrentes por host.--session-idpor sí solo no es suficiente bajo la contención del demonio. - Errores comunes:
evaldevuelve valores citados en JSON ("49.99"no49.99),opensale con un código diferente de cero en navegación exitosa, las sesiones terminan cuando la conexión se cierra. - Referencia completa de comandos: cada opción para
new-session,open,wait,eval,get,click,fill,snapshot,auth,profile,recording,stop, etc.
4. Verifica que la habilidad esté conectada
Antes de la primera extracción real de Amazon, prueba la instalación con un aviso seguro a tu agente:
"Usando la habilidad Scrapeless, abre https://example.com y dime el título de la página."
Tu agente debería crear una sesión de Scrapeless, navegar y responder con "Example Domain". Si ves esas dos palabras, la habilidad está cargada, la clave de API está configurada y el navegador en la nube es accesible: estás listo para extraer datos de Amazon.
Si falla:
| Síntoma | Causa probable | Solución |
|---|---|---|
| "No tengo una herramienta/habilidad para hacer eso" | Habilidad no cargada en esta sesión del agente | Reinstala a través de la guía de instalación de habilidades y recarga el agente |
Autenticación fallida / 401 |
Clave de API no configurada | Vuelve a ejecutar scrapeless-scraping-browser config set apiKey <token> (Paso de instalación 2) |
comando no encontrado |
Binario CLI faltante en PATH | Vuelve a ejecutar el paso de instalación 1 (npm install -g scrapeless-scraping-browser) |
Se queda colgado / aterriza en chrome://new-tab-page/ |
Carrera de espera de sesión en frío | Pide al agente que vuelva a intentar — la habilidad sabe insertar wait 1500 entre open y wait --load networkidle |
page.goto: Tiempo de espera 25000ms excedido en Amazon (pero example.com funciona) |
Presión CAPTCHA de proxy residencial de Scrapeless ↔ Amazon | Prueba en un país de proxy diferente (--proxy-country GB/CA/DE); para uso sostenido, cambia a la API de Scraper de Amazon de Scrapeless |
Cómo usar esto: da instrucciones a tu agente
Después de la instalación, extraes datos de Amazon hablando con tu agente — no copiando y pegando bash. La habilidad carga selectores, espera, vuelve a clasificar y el patrón de descubrir→extraer en el contexto del agente, así que un aviso en lenguaje natural de una línea es suficiente para obtener un JSON estructurado de vuelta.
Avisos que puedes pegar
| Le dices a tu agente | Lo que obtienes de vuelta |
|---|---|
| "Extrae Amazon para AirPods — los 10 mejores con título, precio, calificación, ASIN" | Lista JSON, 10 tarjetas, campos {title, price, rating, asin, url, sponsored} |
| "Obtén los detalles completos del producto para ASIN B09B8V1LZ3" | Objeto JSON: {title, price, rating, reviewCount, availability, prime, asin, topReviews[]} |
| "Extrae la búsqueda de Amazon para 'auriculares inalámbricos' en las páginas 1–5, guarda como headphones.json" | Un archivo JSON, 5 páginas × ~22 tarjetas orgánicas cada una, sin duplicados por ASIN |
| "Saca las mejores reseñas de la página del producto de Echo Dot" | Array JSON — autor, calificación, título, fecha, cuerpo, conteo de útiles — para el carrusel de reseñas en PDP |
| "Compara precios para ASIN B09B8V1LZ3 en amazon.com y amazon.co.uk" | Precios lado a lado; .es/.de bloqueados anónimamente — el agente te lo dirá y ofrecerá la ruta a la API de Scraper |
| "Sigue el precio para ASIN B09B8V1LZ3 cada hora durante las próximas 6 horas" | Bucle de sondeo, sesión fresca por sondeo, resultados adjuntados a un CSV/JSON |
| "Encuentra los más vendidos en Electrónica → los 20 mejores con precio + calificación" | JSON, 20 filas de /gp/bestsellers/electronics |
| "Extrae esta lista y dime si es elegible para Prime: https://amazon.com/dp/B09B8V1LZ3" | Objeto único con prime: true/false más el texto de evidencia de apoyo del distintivo |
| "Obtén el histograma de calificaciones (5★/4★/3★/2★/1★ %) para B09B8V1LZ3" | Autenticado en 2026 — el agente explicará y ofrecerá la ruta a la API de Scraper |
| "Busca 'silla de oficina por debajo de 200', filtra anuncios, regresa los 10 orgánicos principales" | JSON solo orgánico; tarjetas patrocinadas eliminadas a través de [data-component-type="sp-sponsored-result"] |
| "¿Qué está actualmente en oferta en la tienda de Apple en amazon.com?" | Descubrimiento en la vitrina, luego extracción de artículos etiquetados en oferta |
| "Para ASIN B09B8V1LZ3 lista las características en viñetas y el texto de la sección A+" | Dos arrays: viñetas de características de #feature-bullets y párrafos A+ |
Ejemplo trabajado: obtén la tarjeta de producto completa para ASIN B09B8V1LZ3
Escribís:
"Obtén el título, precio, calificación, conteo de reseñas y las 5 mejores reseñas para el ASIN B09B8V1LZ3 de Amazon. Devuelve JSON."
El plan del agente (en inglés simple):
- Crea una sesión de salida de EE. UU. (Amazon localiza por IP).
- Abre
https://www.amazon.com/dp/B09B8V1LZ3,wait 1500, luegowait '#productTitle'para evitar la carrera de sesión en frío.- Confirma anclas con
get html "#centerCol"(maneja los frecuentes cambios de diseño de Amazon), luegoevalpara#productTitle,.a-price .a-offscreen,#acrPopover[title],#acrCustomerReviewText, y[data-hook="review"]× 5.
Lo que obtienes de vuelta (el esquema es normativo: la forma del JSON; el texto de la reseña a continuación es un ejemplo ilustrativo):
json
{
"asin": "B09B8V1LZ3",
"title": "Echo Dot (5ª Gen, lanzamiento de 2022) | Sonido grande y vibrante...",
"price": "$49.99",
"rating": "4.7 de 5 estrellas",
"reviewCount": "191,146 calificaciones",
"availability": "En stock",
"prime": true,
"topReviews": [
{
// ilustrativo — los campos de reseña reales se aclaran a partir de [data-hook="review"] × 5
"author": "James M.",
"rating": "5.0 de 5 estrellas",
"title": "Excelente calidad de voz, fácil configuración",
"fecha": "Revisado en los Estados Unidos el 14 de marzo de 2026",
"cuerpo": "La configuración tomó dos minutos. El reconocimiento de voz es notablemente más preciso..."
es
primeEligible: prime, url: location.href,
});
})()
'
Para esquemas más ricos (características con viñetas, marca, vendedor, envío desde, galería de imágenes, matriz de variantes), repita el ciclo de descubrir → extraer para cada región. La guía wiki a nivel de ASIN y la guía wiki de precios de productos documentan campos adicionales.
Paso 4 — Raspa una búsqueda de categoría con paginación
Amazon pagina los resultados de búsqueda a través de &page=N. La profundidad orgánica accesible para una sola consulta es de aproximadamente 20 páginas (~400 artículos) — una limitación estructural del índice. Para una cobertura más amplia, divida la consulta por facetas (marca, rango de precios, subcategoría) en lugar de superar el límite.
bash
QUERY="audífonos+inalámbricos"
for page in $(seq 1 20); do
# Crea una nueva sesión por página — la reutilización de sesiones de larga duración se degrada después de
# ~3 solicitudes de página hidratada (devoluciones silenciosas de chrome://new-tab-page o
# terminaciones completas). Una sesión por página es tanto más confiable como
# trivialmente paralelizable.
SID=$(scrapeless-scraping-browser new-session --name "search-p$page" --ttl 300 \
--json | jq -r '.data.taskId')
URL="https://www.amazon.com/s?k=$QUERY&page=$page"
scrapeless-scraping-browser --session-id $SID open "$URL"
# networkidle nunca se asienta en /s debido a flujos de carga perezosa; esperar a que se carguen las tarjetas
scrapeless-scraping-browser --session-id $SID wait '[data-asin]:not([data-asin=""])'
scrapeless-scraping-browser --session-id $SID eval "
(() => {
const cards = document.querySelectorAll('[data-asin]:not([data-asin=\"\"])');
// El conteo de tarjetas varía (~16–60 dependiendo de la ventana, consulta y variante de A/B);
// emite un índice por página y deja que el consumidor calcule el rango absoluto a partir de eso
// más el número de página en lugar de hornear un multiplicador fijo aquí.
return JSON.stringify({
query: '$QUERY', page: $page,
results: [...cards].map((c, i) => ({
pageIndex: i + 1,
asin: c.getAttribute('data-asin'),
title: c.querySelector('h2 span')?.textContent?.trim() || null,
price: c.querySelector('.a-price .a-offscreen')?.textContent || null,
// Calificación: intenta múltiples superficies de widget de estrellas — Amazon rota estas
rating: parseFloat(
c.querySelector('[aria-label*=\"out of 5 stars\"]')?.getAttribute('aria-label')
|| c.querySelector('i.a-icon-star span.a-icon-alt, i.a-icon-star-small span.a-icon-alt')?.textContent
|| ''
) || null,
sponsored: c.querySelector('[data-component-type=\"sp-sponsored-result\"]') !== null || c.matches('[data-component-type=\"sp-sponsored-result\"]'),
prime: !!c.querySelector('[aria-label*=\"Prime\"]'),
url: c.querySelector('a.a-link-normal.s-underline-link-text')?.href || null,
})),
});
})()
" > "results-page-$page.json"
scrapeless-scraping-browser stop $SID
done
Una nueva sesión por página, no una larga sesión. En teoría, un --session-id reutilizado conserva cookies y huellas dactilares; en la práctica, las sesiones de Scrapeless comienzan a devolver chrome://new-tab-page en blanco o terminan después de ~3 solicitudes de página hidratada, así que el patrón confiable es crear una sesión de corta duración por página y detenerla al final. Paralelizar a través de páginas es entonces sencillo: ejecuta el cuerpo del bucle en trabajadores en segundo plano sin coordinación.
Los ASIN NO son únicos entre las páginas 1-5 (los ASIN patrocinados se repiten legítimamente: 104 únicos / 274 totales observados); no asuma que los conjuntos de ASIN entre páginas son disjuntos al eliminar duplicados.
Mantenga la concurrencia ≤ 3 por host. Ejecutar 4+ invocaciones CLI simultáneas contra el mismo demonio local provoca fallos en la página objetivo y errores como "La página objetivo, contexto o navegador se ha cerrado durante la evaluación". Para un mayor rendimiento, divida entre múltiples hosts (o múltiples cuentas de usuario) en lugar de aumentar la concurrencia en una sola máquina.
¿Ejecutando trabajadores paralelos? El demonio predeterminado
~/.scrapeless-scraping-browser/es compartido entre procesos en el mismo host: múltiples trabajadores pueden secuestrar las sesiones de los demás incluso cuando cada uno pasa su propio--session-id. Lo que realmente funciona: encadenar cada llamada CLI para un trabajo como una invocación de un solo shell&&(atómica desde el POV del demonio: otros trabajadores no pueden intercalarse entre sus pasos), usar nombres de sesión únicos (el puerto se calcula a partir del nombre), y mantener la concurrencia alrededor de 3 trabajadores por host. La variable de entornoUSERPROFILE/HOMEestá documentada en la habilidad upstream, pero no aísla el binario de Rust v0.1.1 en Windows en nuestras pruebas: para un mayor flujo, divídase entre hosts. Para estrategias de cobertura más profundas, vea Cómo raspar datos de categorías de Amazon.
Paso 5 — Una nota sobre las reseñas y el histograma de estrellas
A lo largo de 2025, las páginas /product-reviews/<ASIN>/ eran accesibles de manera anónima y el producto cartesiano de filtro de estrellas × número de página hacía que la recopilación completa del corpus de reseñas fuera sencilla. En 2026, Amazon cambió el acceso: las solicitudes anónimas a las URL de reseñas ahora redirigen a /ap/signin en la abrumadora mayoría de los casos. El carrusel de reseñas en la página del producto ([data-hook="review"] dentro de la PDP principal) sigue siendo accesible de forma anónima — esas son las 5-10 principales reseñas que se mostraron en la extracción del Paso 3 — pero la navegación profunda por filtro de estrellas y el histograma de calificaciones en la página de reseñas requieren una sesión autenticada.
Dos caminos prácticos a seguir:
- Utilizar las principales reseñas en la PDP (disponibles en la extracción del Paso 3; no se necesita navegación adicional) cuando 5-10 reseñas por ASIN son suficientes — generalmente cierto para el monitoreo de la reputación y la detección de tendencias.
- Para el corpus completo de reseñas, combina el Navegador de Scraping con un estado de sesión autenticada.
auth save <name>almacena credenciales yauth login <name>las reproduce, pero las solicitudes de MFA aún aparecen en cada inicio de sesión nuevo — práctico solo para cuentas de Amazon sin la aplicación de MFA. Para tuberías que necesitan acceder al corpus histórico completo de reseñas a gran escala, la API de Scraper de Amazon Sin Escrapeo maneja la autenticación del lado del servidor para que el llamador no lo haga.
De cualquier manera, no intentes realizar scraping anónimo de /product-reviews/* en 2026 — cada solicitud después de las primeras varias llega a /ap/signin y la sesión está efectivamente muerta para el trabajo de reseñas.
Paso 6 — Una nota sobre los instantáneas de múltiples mercados
El ASIN es globalmente estable — precios, disponibilidad y grupo de vendedores difieren entre .com, .co.uk, .de, y .co.jp — y en principio, una sesión alineada como proxy por mercado es el patrón natural. En la práctica, las sesiones enrutadas desde EE. UU. que acceden a mercados no estadounidenses frecuentemente aterrizan en intersticiales de localización (por ejemplo, amazon.es/dp/<ASIN> devuelve la página española "Seguir comprando" — ~160 bytes, sin #productTitle, sin marcadores de añadir al carrito — en lugar de la página de detalles del producto). Las solicitudes al mercado no estadounidense se atienden actualmente mejor con la API de Scraper de Amazon Sin Escrapeo, que maneja el enrutamiento del mercado del lado del servidor.
Para el mercado estadounidense específicamente (.com), cada paso de esta guía funciona de extremo a extremo sin ninguna bandera geográfica. Para tuberías de varios mercados hoy, utiliza la API de Scraper para mercados no estadounidenses y el Navegador de Scraping para el trabajo de flujo personalizado en EE. UU.
Consulta Scrapeando Amazon Con Proxies Residenciales y Proxy para Scraping Amazon para obtener información sobre el modelo de proxy residencial.
Lo Que Obtienes
El Navegador de Scraping devuelve un DOM en vivo — el esquema de extracción es lo que el llamador escribe en el paso eval. Para un único pase de PDP con la plantilla descubrir → extraer del Paso 3, los campos que hoy regresan de manera confiable son los siguientes:
json
// El esquema es normativo; los valores de campo a continuación son ejemplos ilustrativos
// de una captura reciente, no una instantánea congelada de B09B8V1LZ3 hoy.
{
"asin": "B09B8V1LZ3",
"title": "Echo Dot (5ª generación, lanzamiento 2022) | Gran sonido vibrante...",
"brand": "Amazon",
"final_price": "49.99",
"availability": "En stock",
"rating": 4.7,
"review_count": 191146,
"prime_eligible": true,
"amazon_choice": true,
"bought_past_month": "10K+ comprados en el último mes",
"features": [
"PERFECTO PARA CUALQUIER HABITACIÓN – Sonido vibrante...",
"CONTROL DE VOZ PARA TU MÚSICA – Reproduce canciones..."
],
"image_url": "https://m.media-amazon.com/images/I/...",
"images_count": 9,
"delivery": "ENVÍO GRATIS en pedidos calificados",
"url": "https://www.amazon.com/dp/B09B8V1LZ3",
"domain": "www.amazon.com"
}
Algunas observaciones honestas sobre esta salida, que vale la pena conocer antes de ejecutar a gran escala:
- La tabla de especificaciones detalladas está restringida por plantilla. Los campos que están dentro de
#productDetails_detailBullets_sections1/#detailBulletsWrapper_feature_div—product_dimensions,item_weight,model_number,manufacturer,upc,date_first_available,department— frecuentemente están ausentes del DOM que Amazon sirve. Una dirección IP residencial diferente, o agregar?language=en_US&m=ATVPDKIKX0DERa la URL, a veces revela la plantilla completa. Para campos que deben estar presentes en cada ejecución, la API de Scraper de Amazon Sin Escrapeo resuelve esto del lado del servidor. - El Rango de Mejores Vendedores (BSR) y sus categorías ancestros (
bs_rank,bs_category,root_bs_rank,root_bs_category,subcategory_rank) son parte de ese mismo bloque de especificaciones detalladas. La misma advertencia. number_of_sellersrequiere una navegación secundaria a/gp/offer-listing/<ASIN>/y luego la extracción del conteo de filas de vendedores.top_reviewproviene del carrusel de reseñas de la PDP ([data-hook="review-body"]). La ruta alternativa a/product-reviews/<ASIN>/ya no funciona de forma anónima en 2026 (ver Paso 5) — confía en el carrusel de la PDP para 5-10 reseñas principales por ASIN.parent_asinrequiere escanear la región del "variantes" (#twister/#variation_*); solo está presente en productos que envían variantes.
Un instantáneo de la página de búsqueda devuelve un array de resultados estructurado:
json
{
"query": "auriculares inalámbricos",
"page": 1,
"results": [
{
"rank": 1, "asin": "B0XXXXXXXX", "title": "...",
"price": "$79.99", "rating": 4.5, "review_count": 12034,
"sponsored": false, "prime": true,
"url": "https://www.amazon.com/dp/B0XXXXXXXX"
}
]
}
¿Necesitas el esquema completo de 55 campos? Usa la API de Amazon Scraper de Scrapeless
El producto complementario — la API de Amazon Scraper de Scrapeless — devuelve un esquema pre-normalizado de ~55 campos para cualquier ASIN: parent_asin, buybox_prices{initial, final, unit, discount}, BSR completo a través de categorías ancestro (root_bs_rank, bs_rank, subcategory_rank), number_of_sellers, seller_id, product_details[{type, values}], top_review, answered_questions, variations y el resto — sin escribir un solo selector o navegación adicional.
| Navegador de Scrapeless Scraping (esta guía) | API de Amazon Scraper de Scrapeless | |
|---|---|---|
| Salida | DOM en vivo; tú escribes el eval |
JSON pre-normalizado, ~55 campos |
| Mantenimiento de selectores | A cargo del llamador | A cargo de Scrapeless |
| Mejor para | Vistas con sesión iniciada, campos personalizados, flujos de varios pasos, páginas restringidas por región, automatización de añadir al carrito, navegación por variante | Inteligencia de producto de alto volumen, monitoreo de MAP, repricers, análisis estructurados |
Normalización (is_available, separación de buybox_prices, recorrido de BSR ancestro) |
Responsabilidad del llamador | Manejado en el servidor |
| Buena primera opción cuando… | Necesitas exactamente el subconjunto de campos que le importan a tu flujo de trabajo, o flujos no PDP (carrito, guardado para más tarde, lista de deseos, Subscribe & Save) | Quieres el objeto de producto de Amazon canónico con un esquema garantizado |
Ambos productos comparten la misma cuenta de Scrapeless y la misma piscina de proxies residenciales. Elige la herramienta adecuada según el caso de uso; se combinan limpiamente cuando un flujo de trabajo necesita ambos.
Para referencia completa del esquema y ejemplos de carga útil, consulta Scrape Amazon Product Data y el centro de soluciones de Amazon.
Algunas observaciones honestas más sobre los resultados de las tarjetas de búsqueda, que vale la pena conocer antes de ejecutar a gran escala:
- El campo
currencygeneralmente puede inferirse del dominio del mercado, pero no siempre se emite de manera directa en la página — derivarlo del contexto del mercado de la sesión en lugar de analizar la cadena de precio. - El texto de
availabilityestá localizado; normalízalo a un enum (InStock,OutOfStock,BackOrdered,LimitedStock,Unavailable) antes de su uso posterior. - Los campos
ratingyreviewCounten las tarjetas de búsqueda a veces faltan en listados nuevos; trátalos como anulables.
Conclusión
Raspar Amazon a gran escala ya no se trata solo de obtener HTML — requiere renderizado confiable, sesiones conscientes del locale, y un flujo de trabajo que pueda sobrevivir a cambios frecuentes en el DOM y presión anti-bot. Scrapeless Scraping Browser reúne estas piezas de manera lista para producción, facilitando la recolección de datos estables de productos, reseñas y resultados de búsqueda sin mantener navegadores locales frágiles.
Para equipos que necesitan datos estructurados de Amazon simples a gran escala, la API de Amazon Scraper de Scrapeless es la opción más adecuada. Para flujos de trabajo que requieren interacción, navegación personalizada o control a nivel de navegador, Scrapeless Scraping Browser te brinda la flexibilidad y resiliencia para construir sobre páginas web reales. En la práctica, los dos productos funcionan mejor como un stack combinado: usa la API para extracción estandarizada, y el navegador para flujos complejos y casos extremos.
¿Listo para raspar y ganar?
Únete a nuestra vibrante comunidad para reclamar un plan gratuito y conectar con otros innovadores:
Comunidad Oficial de Discord de Scrapeless
Comunidad Oficial de Telegram de Scrapeless
Preguntas Frecuentes
Q1: ¿Por qué usar Scrapeless Scraping Browser en lugar de un scraper regular o configuración local de Playwright?
Las páginas de Amazon son altamente dinámicas y a menudo están protegidas por sistemas anti-bot. Scrapeless Scraping Browser te ofrece renderizado en un navegador real, proxies residenciales, protección contra huellas digitales y control de sesión en un solo lugar, lo que lo hace mucho más confiable para raspar en producción.
Q2: ¿Necesito un proxy para raspar Amazon?
Sí. Los rangos de IP del centro de datos están filtrados agresivamente en el borde de Amazon, y los patrones de solicitud de una sola IP se limitan rápidamente. Los proxies residenciales, conectados al Scrapeless Scraping Browser a través de --proxy-country, --proxy-state y --proxy-city, producen tasas de recolección estables. Consulta Proxy para Scraping de Amazon y Scraping de Amazon con Proxies Residenciales.
Q3: ¿En qué se diferencia esto de la API de Scraper de Amazon?
La API de Scraper de Amazon devuelve JSON estructurado para puntos finales bien conocidos (búsqueda de ASIN, páginas de categoría, búsqueda) sin que el llamador renderice un navegador, ideal para tuberías que desean un esquema fijo y ninguna lógica de extracción. Scrapeless Scraping Browser es la herramienta adecuada cuando la página necesita renderización de JavaScript, cuando las secuencias de navegación son importantes (filtros, menús desplegables, secciones expandibles) o cuando se requiere continuidad de cookies/fingerprint por sesión en solicitudes paginadas.
Q4: ¿Qué mercados son compatibles?
Cada dominio de mercado de Amazon es una URL simple: .com, .co.uk, .de, .fr, .it, .es, .co.jp, .com.au, .in, .com.mx, .com.br, y así sucesivamente. Alinea --proxy-country, --timezone y --languages con la región de origen del mercado. En la práctica (ver Paso 6), el mercado de EE. UU. funciona de extremo a extremo en el Scraping Browser; los mercados no estadounidenses son actualmente mejor atendidos por la API de Scraper de Amazon de Scrapeless, que maneja la redirección del mercado del lado del servidor.
Q5: ¿Qué sucede cuando Amazon cambia el DOM?
El flujo de descubrir → extraer es la respuesta duradera: get html de la región relevante primero, identificar anclajes estables (atributos de datos ASIN, etiquetas ARIA, localizadores basados en roles semánticos) y llenar eval con selectores derivados del DOM actual — no nombres de clase codificados. Cuando la página se refactoriza, el mismo paso de descubrimiento se adapta automáticamente.
En Scrapeless, solo accedemos a datos disponibles públicamente y cumplimos estrictamente con las leyes, regulaciones y políticas de privacidad del sitio web aplicables. El contenido de este blog es sólo para fines de demostración y no implica ninguna actividad ilegal o infractora. No ofrecemos garantías y renunciamos a toda responsabilidad por el uso de la información de este blog o enlaces de terceros. Antes de realizar cualquier actividad de scraping, consulte a su asesor legal y revise los términos de servicio del sitio web de destino u obtenga los permisos necesarios.



