Siempre puedes encontrar toda la información relevante y valiosa sobre productos, vendedores, reseñas, calificaciones, ofertas especiales, noticias, etc. en Amazon. Ya sea que se trate de un vendedor que realiza estudios de mercado o de una persona que recopila datos, el uso de una herramienta de alta calidad, conveniente y rápida te ayudará a rastrear con precisión una gran cantidad de información en Amazon.
Amazon recopila información valiosa en un solo lugar: productos, reseñas, calificaciones, ofertas exclusivas, noticias, etc. Por lo tanto, el raspado de datos en Amazon evitará en gran medida los problemas que requieren mucho tiempo y trabajo. Como empresa, el uso de un raspador de productos de Amazon puede aportarte al menos las siguientes 4 ventajas significativas:
Los navegadores sin cabeza son excelentes para realizar trabajos automatizados. Así es, utilizaremos el servicio de navegador sin cabeza más potente de Nstbrowser: Browserless para rastrear la información del producto de Amazon.
Al rastrear datos de productos de Amazon, siempre nos encontramos con una serie de desafíos graves, como detección de robots, reconocimiento de códigos de verificación y bloqueo de IP. ¡Usar Browserless puede evitar completamente estos dolores de cabeza!
Browserless de Nstbrowser proporciona huellas dactilares de navegador de usuario real, y cada huella dactilar es única. Además, participar en nuestro plan de suscripción puede lograr una omisión completa del captcha, lo que garantiza una experiencia de acceso sin obstáculos. ¡Únete a nuestro programa de recomendación de Discord para compartir $ 1,500 en efectivo ahora!
Sin más preámbulos, ¡comencemos oficialmente a usar Browserless para el rastreo de datos!
Antes de comenzar, debemos conectarnos al servicio Browserless. El uso de Browserless puede resolver tareas complejas de raspado web y automatización a gran escala, y realmente puedes disfrutar de la implementación en la nube totalmente administrada.
Browserless adopta un concepto centrado en el navegador, proporciona potentes capacidades de implementación sin cabeza y ofrece un mayor rendimiento y confiabilidad. Para obtener más información sobre Browserless, puedes consultar nuestra documentación relevante.
Obtén la API KEY y ve a la página del menú de Browserless del cliente de Nstbrowser, o puedes hacer clic aquí para acceder directamente.

# pnpm
pnpm i puppeteer-core
# yarn
yarn add puppeteer-core
# npm
npm i --save puppeteer-core
const apiKey = "your ApiKey"; // required
const config = {
proxy: 'your proxy', // required; input format: schema://user:password@host:port eg: http://user:password@localhost:8080
// platform: 'windows', // support: windows, mac, linux
// kernel: 'chromium', // only support: chromium
// kernelMilestone: '128', // support: 128
// args: {
// "--proxy-bypass-list": "detect.nstbrowser.io"
// }, // browser args
// fingerprint: {
// userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.85 Safari/537.36', // userAgent supportted since v0.15.0
// },
};
const query = new URLSearchParams({
token: apiKey, // required
config: JSON.stringify(config),
});
const browserlessWSEndpoint = `https://less.nstbrowser.io/connect?${query.toString()}`;
Antes de rastrear, podemos intentar ir a https://www.amazon.com/. Si es la primera vez que visitas, es muy probable que aparezca un código de verificación:

Pero no importa, no tenemos que esforzarnos para encontrar una herramienta de decodificación de código de verificación. En este momento, solo necesitas visitar el nombre de dominio de Amazon en tu región o la región de tu proxy, y el código de verificación no se activará.
Por ejemplo, visitemos: https://www.amazon.co.uk/: el nombre de dominio de Amazon en el Reino Unido. Podemos ver la página sin problemas, luego intenta ingresar la palabra clave del producto que deseas en la barra de búsqueda superior o visita directamente a través de la URL, como:
https://www.amazon.co.uk/s?k=shirt
El valor después de /s?k= en la URL es la palabra clave del producto. Al acceder a la URL anterior, verás productos relacionados con la camisa en Amazon. Ahora puedes abrir las "Herramientas para desarrolladores" (F12) para verificar la estructura HTML de la página y confirmar los datos que necesitamos rastrear más adelante posicionando el cursor.

Primero, agregué una cadena de código en la parte superior del script. El siguiente código usa el primer parámetro del script como la palabra clave del producto de Amazon, y los scripts posteriores también usarán este parámetro para rastrear:
const productName = process.argv.slice(2);
if (productName.length !== 1) {
console.error('product name CLI arguments missing!');
process.exit(2);
}
A continuación, necesitamos:
import puppeteer from "puppeteer-core";
const browser = await puppeteer.connect({
browserWSEndpoint: browserlessWSEndpoint,
defaultViewport: null,
})
console.info('Connected!');
const page = await browser.newPage();
await page.goto(`https://www.amazon.co.uk/s?k=${productName}`);
// Agregar capturas de pantalla para facilitar la resolución de problemas posteriores
await page.screenshot({ path: 'amazon_page.png' })
Ahora usamos page.$$ para obtener una lista de todos los productos, recorremos la lista de productos y obtenemos los datos relevantes uno por uno en el bucle. Luego, recopila estos datos en la matriz productDataList e imprímelo:
// Obtener el elemento contenedor de todos los resultados de la búsqueda
const productContainers = await page.$$('div[data-component-type="s-search-result"]')
const productDataList = []
// Obtener información diversa sobre el producto: título, calificación, enlace de imagen, precio
for (const product of productContainers) {
async function safeEval(selector, evalFn) {
try {
return await product.$eval(selector, evalFn);
} catch (e) {
return null;
}
}
const title = await safeEval('.s-title-instructions-style > h2 > a > span', node => node.textContent)
const rate = await safeEval('a > i.a-icon.a-icon-star-small > span', node => node.textContent)
const img = await safeEval('span[data-component-type="s-product-image"] img', node => node.getAttribute('src'))
const price = await safeEval('div[data-cy="price-recipe"] .a-offscreen', node => node.textContent)
productDataList.push({ title, rate, img, price })
}
console.log('amazon_product_data_list :', productDataList);
await browser.close();
Ejecutar el script:
node amazon.mjs shirt
Si tiene éxito, se imprimirá lo siguiente en la consola:

Obviamente, para analizar mejor los datos, no es suficiente simplemente imprimir los datos en la consola. Aquí hay un ejemplo simple: convierte rápidamente un objeto JS a un archivo JSON a través del módulo fs:
import fs from 'fs'
function saveObjectToJson(obj, filename) {
const jsonString = JSON.stringify(obj, null, 2)
fs.writeFile(filename, jsonString, 'utf8', (err) => {
err ? console.error(err) : console.log(`File saved successfully: ${filename}`);
});
}
saveObjectToJson(productDataList, 'amazon_product_data.json')
Bueno, echemos un vistazo a nuestro código completo:
import puppeteer from "puppeteer-core";
import fs from 'fs'
const productName = process.argv.slice(2);
if (productName.length !== 1) {
console.error('product name CLI arguments missing!');
process.exit(2);
}
const apiKey = "your ApiKey"; // 'your proxy'
const config = {
proxy: 'your proxy', // required; input format: schema://user:password@host:port eg: http://user:password@localhost:8080
// platform: 'windows', // support: windows, mac, linux
// kernel: 'chromium', // only support: chromium
// kernelMilestone: '128', // support: 128
// args: {
// "--proxy-bypass-list": "detect.nstbrowser.io"
// }, // browser args
// fingerprint: {
// userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.85 Safari/537.36', // userAgent supportted since v0.15.0
// },
};
const query = new URLSearchParams({
token: apiKey, // required
config: JSON.stringify(config),
});
const browserlessWSEndpoint = `https://less.nstbrowser.io/connect?${query.toString()}`;
const browser = await puppeteer.connect({
browserWSEndpoint: browserlessWSEndpoint,
defaultViewport: null,
})
console.info('Connected!');
const page = await browser.newPage();
await page.goto(`https://www.amazon.co.uk/s?k=${productName}`);
// Agregar capturas de pantalla para facilitar la resolución de problemas posteriores
await page.screenshot({ path: 'amazon_page.png' })
// Obtener el elemento contenedor de todos los resultados de la búsqueda
const productContainers = await page.$$('div[data-component-type="s-search-result"]')
const productDataList = []
// Obtener información diversa sobre el producto: título, calificación, enlace de imagen, precio
for (const product of productContainers) {
async function safeEval(selector, evalFn) {
try {
return await product.$eval(selector, evalFn);
} catch (e) {
console.log(`Error fetching ${selector}:`, e);
return null;
}
}
const title = await safeEval('.s-title-instructions-style > h2 > a > span', node => node.textContent)
const rate = await safeEval('a > i.a-icon.a-icon-star-small > span', node => node.textContent)
const img = await safeEval('span[data-component-type="s-product-image"] img', node => node.getAttribute('src'))
const price = await safeEval('div[data-cy="price-recipe"] .a-offscreen', node => node.textContent)
productDataList.push({ title, rate, img, price })
}
function saveObjectToJson(obj, filename) {
const jsonString = JSON.stringify(obj, null, 2)
fs.writeFile(filename, jsonString, 'utf8', (err) => {
err ? console.error(err) : console.log(`File saved successfully: ${filename}`);
});
}
saveObjectToJson(productDataList, 'amazon_product_data.json')
console.log('amazon_product_data_list :', productDataList);
await browser.close();
Ahora, después de ejecutar el script, no solo puedes ver la impresión de la consola, sino también el archivo amazon_product_data.json escrito en la ruta actual.

Puedes ver las estadísticas de las solicitudes recientes y el tiempo de sesión restante en el menú de Browserless del cliente de Nstbrowser.

Usar herramientas RPA para rastrear datos web es un método común de recopilación de datos. El uso de herramientas RPA puede mejorar en gran medida la eficiencia de la recopilación de datos y reducir el costo de la recopilación. La función Nstbrowser RPA puede proporcionarte la mejor experiencia RPA y la mejor eficiencia laboral.
Después de leer este tutorial, podrás:
Primero, necesitas tener una cuenta de Nstbrowser, y luego inicia sesión en el cliente de Nstbrowser, ingresa a la página de flujo de trabajo del módulo RPA y haz clic en Nuevo flujo de trabajo.
Ahora, podemos comenzar a configurar el flujo de trabajo de rastreo RPA basado en los resultados de la búsqueda de productos de Amazon.

Goto Url, configura la URL del sitio web y puedes visitar el sitio web de destino:
Esta vez no usaremos el método de consultar el producto correspondiente a través de la URL, sino que usaremos RPA para ayudar a ingresar al cuadro de entrada en la página de inicio y luego activar el salto de consulta. Esto no solo nos hará más familiarizados con el funcionamiento de RPA, sino que también evitará el control de riesgos del sitio en mayor medida.
Bueno, después de llegar al sitio web de destino, necesitamos buscar primero la dirección de destino. Aquí necesitamos usar la herramienta Chrome Devtool para localizar el elemento HTML.

Agregar nodo Input Content:
id que estamos ubicando en el cuadro de entradaDe esta manera, hemos completado la acción de ingresar al cuadro de entrada.

Keyboard para simular la acción de entrada del teclado para buscar productos:
Debido a que la página de búsqueda saltará a una nueva página, debemos agregar una acción de espera para asegurarnos de que hayamos cargado correctamente la página de resultados. Nstbrowser RPA proporciona dos comportamientos de espera: Wait Time y Wait Request.
Wait Time: usado para esperar un período de tiempo. Puedes elegir un tiempo fijo o un tiempo aleatorio según tu situación específica.Wait Request: usado para esperar a que la solicitud de red finalice. Aplicable a la situación de obtener datos a través de solicitudes de red.
Bueno, ahora podemos ver correctamente la nueva página de búsqueda de productos, y el siguiente paso es rastrear estos contenidos.
Mediante la observación, podemos encontrar que los resultados de búsqueda de Amazon se muestran en forma de una lista de tarjetas. Este es un método de visualización muy clásico:
De manera similar, abre la herramienta Devtool y ubica cada dato en la tarjeta:

Debido a que cada elemento en la lista de tarjetas es un elemento HTML, necesitamos usar el nodo Loop Element para recorrer todos los resultados de la consulta. Completamos el selector CSS de la lista product en Selector y seleccionamos Element Object para Data Type, lo que significa obtener el elemento objetivo y guardarlo como un objeto de elemento en una variable. Establecer el nombre de la variable en product a través de Data Save Variable, y guardar el índice como productIndex.

A continuación, debemos procesar cada elemento recorrido y obtener la información que necesitamos de la product. Obtenemos el elemento título del producto. Aquí necesitamos usar el nodo Get Element Data para obtenerlo y finalmente guardarlo como la variable title.
Selecciona Children como Data Type, lo que significa obtener los elementos secundarios del elemento objetivo y guardarlo como un objeto de elemento en la variable title. Debes completar el selector de elemento del elemento secundario. El selector CSS ingresado aquí es naturalmente el selector CSS del título del producto:

Luego, usamos el mismo método para convertir la información restante del producto: calificaciones, enlaces de imagen y precios, todo en procesos RPA.
'title' .s-title-instructions-style > h2 > a > span
'rate' a > i.a-icon.a-icon-star-small > span
'img' span[data-component-type="s-product-image"] img
'price' div[data-cy="price-recipe"] .a-offscreen

Sin embargo, los datos variables obtenidos anteriormente son en realidad elementos HTML. Todavía necesitamos procesarlos para generar el texto en los elementos HTML y prepararnos para el almacenamiento de datos posterior.
Necesitamos

Agrega nuevamente el nodo Get Element Data para generar las variables obtenidas anteriormente como texto y guardarlas en la variable de tabla para el almacenamiento de datos posterior. Selecciona Data Type como Text para obtener el innerText del elemento objetivo. (La figura a continuación muestra el procesamiento de la variable title)

Luego, usamos el mismo método para convertir la calificación y el precio del producto en la información de texto final.
El enlace de imagen necesita procesamiento adicional. Aquí usamos el nodo javascript para obtener el src de la imagen del producto actual recorrido. Ten en cuenta que la variable de índice productIndex guardada por el nodo Loop Element necesita inyectarse en el script y finalmente guardarse como la variable imgSrc.

return document.querySelectorAll('[data-image-latency="s-product-image"]')[productIndex].getAttribute('src')
Finalmente, usamos el nodo Set Variable para almacenar la variable imgSrc en la table:

En este punto, hemos obtenido todos los datos que queremos recopilar, y es hora de guardar estos datos.
Save To File y Save To Excel.Save To File proporciona tres tipos de archivos para que elijas: .txt, .CSV y .JSON.Save To Excel solo puede guardar datos en archivos Excel.Para facilitar la visualización, elegimos guardar los datos recopilados en Excel. Agrega el nodo Save To Excel, configura la ruta del archivo y el nombre del archivo que se guardará, selecciona el contenido de la tabla que se guardará y ¡listo!

Guarda primero el flujo de trabajo que configuramos, luego puedes ejecutarlo directamente en la página actual, o volver a la página anterior, crear nuevas tareas y hacer clic en el botón Ejecutar para ejecutarlo. ¡En este punto, podemos comenzar a recopilar los datos del producto de Amazon!
Después de que se complete la ejecución, puedes ver el archivo amazon-product-data.xlsx generado en el escritorio.

La forma más fácil de raspar productos de Amazon es construir tu propio raspador de productos de Amazon usando Browserless. Este artículo del tutorial más completo de 2024 te explica claramente:
¿Estás particularmente interesado en los datos web? Consulta nuestro mercado de RPA. Nstbrowser ha preparado 20 potentes programas RPA que pueden resolver todos tus problemas en todos los aspectos.
Si tienes necesidades especiales para Browserless, raspado de datos o automatización, por favor contacta con nosotros a tiempo. Estamos listos para brindarte servicios personalizados de alta calidad.
Descargo de responsabilidad: Cualquier dato y sitio web mencionados en este artículo son solo para fines de demostración. Nos oponemos firmemente a las actividades ilegales y de infracción. Si tiene alguna pregunta o inquietud, comuníquese con nosotros de inmediato.