API de Scraper de Amazon Alexa: Respuestas Estructuradas para Compras en Alexa
Advanced Data Extraction Specialist
TL;DR:
- El Amazon Alexa Scraper es un actor de Chat Scraper LLM sin scraping (
scraper.alexa) que convierte una pregunta de compra de Alexa en JSON estructurado. - Una
POSTautenticada a/api/v2/scraper/executecon unprompty uncountrydevuelve la respuesta más los productos que Alexa recomienda — sin automatización de navegador ni ingeniería inversa de aplicaciones. - Recibes de vuelta la consulta, la respuesta en Markdown y texto plano, un array de
productscon precio, calificación, entrega y ASIN, un ID de conversación para seguimientos, y referencias y sugerencias opcionales. - Los campos son anulables y varían según la consulta:
references,sources, ysuggestionspueden volver vacíos, y los precios llegan como cadenas de display, así que analiza de manera defensiva. - Empieza gratis. Las nuevas cuentas de Scrapeless incluyen créditos gratuitos del Scraper API — regístrate en app.scrapeless.com.
Amazon Alexa ahora responde a preguntas de compra de la manera en que una persona las haría — "mejores auriculares con cancelación de ruido por menos de $300" — y responde con una recomendación escrita y un conjunto de productos para comprar. Eso convierte a Alexa en una superficie de datos: los productos que menciona, los precios que muestra y el orden en que los clasifica son señales que valen la pena rastrear. Esta guía muestra cómo capturar una respuesta de Alexa como datos estructurados con la API de Scraping de Scrapeless, qué contiene la respuesta y dónde los campos necesitan un manejo cuidadoso. Cada solicitud y campo a continuación fue capturado de una ejecución en vivo del actor.
Lo Que Puedes Hacer Con el Amazon Alexa Scraper
El actor toma un prompt de compra en lenguaje natural y un país objetivo y devuelve la respuesta de Alexa como JSON. Prácticamente, eso te permite:
- Rastrear recomendaciones de productos — capturar qué productos menciona Alexa para una consulta de categoría, con su ASIN, precio y calificación, y observar cómo cambia el conjunto a lo largo del tiempo.
- Comparar entre regiones — enviar el mismo prompt con un
countrydiferente para ver cómo cambian las selecciones de Alexa según el mercado. - Monitorear la visibilidad de compras de IA — medir si tu producto o el de un competidor aparece en la respuesta de Alexa para las consultas que te importan.
- Alimentar sistemas posteriores — canalizar la respuesta estructurada en tableros, hojas de cálculo o alertas sin raspar la aplicación de Alexa tú mismo.
Por Qué el Actor de Alexa de Scrapeless
Las respuestas de compra de Alexa se generan detrás de una aplicación, no se sirven como una página web pública que puedes solicitar. El actor de Scrapeless maneja la recolección y devuelve un envoltorio limpio y amigable para desarrolladores, así que tu código envía un prompt y lee campos en lugar de controlar una aplicación, rotar infraestructura o mantener selectores. Alexa es un miembro de la familia LLM Chat Scraper, lo que significa que la misma forma de solicitud que usas aquí también funciona para los otros motores de respuesta — cambias el valor de actor y mantienes el resto.
Endpoint y Parámetros
El actor funciona en el endpoint sincrónico del Scraper API. Autentica con tu token de API en el encabezado x-api-token.
- Endpoint:
POST https://api.scrapeless.com/api/v2/scraper/execute - Actor:
scraper.alexa
| Campo de entrada | Tipo | Requerido | Descripción |
|---|---|---|---|
prompt |
cadena | sí | La pregunta de compra para enviar a Alexa. |
country |
cadena | sí | Código de país objetivo, por ejemplo, US. |
La respuesta se devuelve sincrónicamente en un objeto task_result; no tienes que realizar polling. Obtén tu token desde el tablero de Scrapeless.
Solicitud Autenticada
Una solicitud mínima se ve así (ilustrativa — reemplaza el token):
bash
curl 'https://api.scrapeless.com/api/v2/scraper/execute' \
--header 'Content-Type: application/json' \
--header 'x-api-token: YOUR_API_TOKEN' \
--data '{
"actor": "scraper.alexa",
"input": {
"prompt": "mejores auriculares con cancelación de ruido por menos de $300",
"country": "US"
}
}'
Integración en Python
Este ejemplo lee el token de la variable de entorno SCRAPELESS_API_KEY, envía la solicitud e imprime la respuesta y los productos recomendados. Utiliza únicamente la biblioteca estándar de Python.
python
import json
import os
import urllib.request
API_URL = "https://api.scrapeless.com/api/v2/scraper/execute"
API_TOKEN = os.environ["SCRAPELESS_API_KEY"]
payload = {
"actor": "scraper.alexa",
"input": {
"prompt": "mejores auriculares con cancelación de ruido por menos de $300",
"country": "US",
},
}
request = urllib.request.Request(
API_URL,
data=json.dumps(payload).encode("utf-8"),
headers={"Content-Type": "application/json", "x-api-token": API_TOKEN},
method="POST",
)
with urllib.request.urlopen(request, timeout=180) as response:
python
datos = json.loads(respuesta.read().decode("utf-8"))
resultado = datos.get("task_result", {})
print("estado:", datos.get("status"))
print("consulta:", resultado.get("user_text"))
print("productos devueltos:", len(resultado.get("products") or []))
for producto in (resultado.get("products") or [])[:3]:
print("-", producto.get("title"))
print(" precio:", producto.get("price"), "| calificación:", producto.get("rating"))
print(" asin:", producto.get("product_id"))
Lo que Obtienes de Vuelta
La respuesta llega dentro de task_result. Los campos a continuación son los que usarás con más frecuencia; los valores son una muestra ilustrativa de una ejecución en vivo, recortados por longitud.
json
// Muestra ilustrativa de una ejecución en vivo de scraper.alexa — los nombres de los campos son reales, los valores recortados.
{
"status": "success",
"task_id": "1ba323ef-1bee-446c-9a80-090cb9c67231",
"task_result": {
"user_text": "mejores auriculares con cancelación de ruido por menos de $300",
"md_text": "**Auriculares Premium con Cancelación de Ruido** ...",
"raw_text": "**Auriculares Premium con Cancelación de Ruido** {cite_product_1} ...",
"completed": true,
"conversation": { "id": "amzn1.conversation.866ba539-..." },
"products": [
{
"citation_id": "cite_product_1",
"product_id": "B09XS7JWHH",
"title": "Auriculares Sony Premium con Cancelación de Ruido, Batería de 30 Horas, Control por Voz de Alexa",
"price": "~~$399.99~~ $248.00",
"rating": "{rating 4.2} 19,796 Reseñas",
"delivery": "Entrega antes del 15 de julio",
"image_url": "<URL de la imagen del producto>",
"url": "<dl.amazon.com redirección resolviendo a /dp/B09XS7JWHH>"
}
],
"references": [],
"sources": [],
"suggestions": [],
"directives": []
}
}
| Campo | Tipo | Descripción |
|---|---|---|
user_text |
cadena | La pregunta de compra como Alexa la recibió. |
md_text |
cadena | La respuesta de Alexa como Markdown/HTML, incluidos los anuncios de productos en línea. |
raw_text |
cadena | La respuesta en texto plano, con marcadores de cita {cite_product_N}. |
completed |
bool | Si la respuesta terminó de generarse. |
conversation |
objeto | Un id de conversación que puedes llevar a un aviso de seguimiento. |
products |
array | Productos recomendados: product_id (ASIN), title, price, rating, delivery, image_url, url, citation_id. |
references |
array | Citas detrás de la respuesta — puede estar vacío. |
sources |
array | Enlaces de respaldo — puede estar vacío. |
suggestions |
array | Avisos de seguimiento que Alexa ofrece — puede estar vacío. |
directives |
array | Directrices de procesamiento de la interacción. |
Problemas Comunes con la Forma de Datos
Algunos campos necesitan un análisis defensivo:
user_textes la consulta, no la respuesta. La respuesta vive enmd_text(rico) yraw_text(plano). Si deseas la recomendación en prosa, lee esos.- Los precios son cadenas de visualización, no números. Un artículo con descuento regresa como
~~$399.99~~ $248.00, donde el valor tachado es el precio de lista y el segundo es el precio actual. Extrae los números en lugar de convertir el campo directamente. ratinges una cadena formateada. Llega como{rating 4.2} 19,796 Reseñas, así que extrae el puntaje y el conteo de reseñas con una pequeña regex en lugar de esperar un flotante.- Los arreglos vacíos son normales.
references,sourcesysuggestionspueden estar vacíos dependiendo de la consulta, así que protege el código paraNoney[]antes de iterar. - Las URLs de productos son redirecciones. La
urles un enlacedl.amazon.com/redirectque se resuelve en la página/dp/<ASIN>del producto; usaproduct_idcuando desees el ASIN canónico.
Actores Compañeros
Debido a que Alexa es parte de la familia LLM Chat Scraper, el mismo patrón de solicitud cubre los otros motores de respuesta — cambia scraper.alexa por scraper.chatgpt, scraper.gemini, scraper.perplexity, y el resto. Scrapeless también publica un repositorio de ejemplo de scraper de Alexa de código abierto con código ejecutable en cinco idiomas si deseas un punto de partida fuera de Python. Para otro motor de respuesta que comparte la misma forma de solicitud, consulta la guía de API de Scraper de ChatGPT.
Conclusión
El Scraper de Amazon Alexa convierte una respuesta de compra conversacional en JSON estructurado con una única solicitud autenticada: envía un aviso y un país, lee el texto de respuesta y una matriz de productos con ASIN, precio, calificación y entrega. Trata los precios y las calificaciones como cadenas, espera que algunos arreglos estén vacíos, y tendrás un feed confiable para rastrear cómo Alexa recomienda productos a través de consultas y regiones. Amazon documenta Alexa para desarrolladores, y la sala de prensa de dispositivos de Amazon cubre cómo está evolucionando el asistente.
¿Listo para capturar respuestas de Alexa como datos? Comienza gratis desde el panel de control de Scrapeless, ve dónde encaja el actor en la página del producto de la API de scraping, o compara planes en precios de Scrapeless.
Preguntas Frecuentes
P: ¿Qué es el scraper de Amazon Alexa?
R: Es un actor de Scrapeless LLM Chat Scraper (scraper.alexa) que envía un aviso de compra a Amazon Alexa y devuelve la respuesta como JSON estructurado: la consulta, la respuesta en Markdown y texto plano, y un array products con ASIN, precio, calificación y entrega.
P: ¿Qué endpoint y parámetros utiliza?
R: POST https://api.scrapeless.com/api/v2/scraper/execute con actor configurado como scraper.alexa y un objeto input que contiene prompt y country. Autentica con tu token en el encabezado x-api-token.
P: ¿Es la respuesta síncrona?
R: Sí. El resultado regresa en el objeto task_result de la misma respuesta, por lo que no necesitas consultar un endpoint de resultados separado.
P: ¿Necesito un navegador o un grupo de proxies?
R: No. Scrapeless ejecuta la recopilación detrás de la API, por lo que tu aplicación solo envía la solicitud y analiza el JSON devuelto.
P: ¿Por qué a veces están vacíos references, sources o suggestions?
R: Esos campos dependen de la consulta. Un aviso de categoría simple puede devolver productos sin citas separadas o sugerencias de seguimiento, así que considera los arrays como opcionales y verifica antes de iterar.
P: ¿Cómo leo el precio y la calificación?
R: Ambos son cadenas de visualización. El precio llega como ~~$399.99~~ $248.00 (precio de lista tachado, precio actual después), y la calificación como {rating 4.2} 19,796 Reseñas. Extrae los números con un pequeño analizador en lugar de convertir el campo directamente.
P: ¿Puedo usar el mismo código para otros asistentes de IA?
R: Sí. Alexa comparte la forma de solicitud del LLM Chat Scraper con los otros motores, por lo que cambiar scraper.alexa por scraper.chatgpt, scraper.gemini o scraper.perplexity reutiliza la misma integración.
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.



