Volver al blog

Datos de Compras de ChatGPT: Recopila Productos, Precios y Ofertas a Gran Escala

Emily Chen
Emily Chen

Advanced Data Extraction Specialist

29-Jun-2026

Resumen:

  • Los datos de compras de ChatGPT son un output de producto estructurado, no capturas de pantalla. Una solicitud POST al actor scraper.chatgpt con shopping habilitado devuelve productos clasificados, cada uno con un precio, calificación, recuento de reseñas y una lista de ofertas por comerciante, todo en campos JSON.
  • Cada producto lleva ofertas de varios comerciantes. Un solo resultado de audífono devuelve el mismo modelo a precios de Sony, Best Buy, Walmart, Target y otros comerciantes en un arreglo offers, cada uno con su propia disponibilidad y nota de entrega.
  • La bandera de compras se incluye dentro de input. La llamada que devuelve productos es {"actor":"scraper.chatgpt","input":{"prompt":"...","country":"US","shopping":true}} contra POST /api/v2/scraper/execute — los parámetros de compras de nivel superior son rechazados.
  • El carrusel de productos se muestra por sesión, no en cada llamada. Un prompt de intención de compra populates products cuando ChatGPT muestra tarjetas de compras en esa sesión; la misma llamada puede devolver solo el texto de respuesta con un arreglo vacío — por lo que la colección se ejecuta como un conjunto de prompts programados y agrega las ejecuciones pobladas.
  • Las respuestas de compras cuestan más que respuestas simples. Devolver tarjetas de producto resueltas se factura a una tasa más alta, así que delimita el conjunto de prompts a los productos que importan.
  • El envoltorio coincide con los otros actores de LLM. Cada llamada devuelve { status, task_id, task_result }, por lo que un cliente escrito aquí se extiende a Grok, Gemini y Perplexity sin cambios.
  • Gratis para empezar. Nuevas cuentas de Scrapeless incluyen créditos de prueba gratuitos — regístrate en app.scrapeless.com.

Introducción: el botón de compra se trasladó a la respuesta

ChatGPT ahora responde preguntas de compras con un carrusel de productos. Un comprador pregunta por los mejores audífonos con cancelación de ruido, y el modelo devuelve productos clasificados con imágenes, precios, calificaciones en estrellas y una fila de comerciantes para comprar, todo dentro del chat, antes de que cualquier tienda reciba un clic. Para una marca, la clasificación en la página de resultados ya no decide la venta; si tu producto aparece en ese carrusel, y a qué precio, sí lo hace.

Esa superficie es difícil de leer a simple vista y más difícil de rastrear con el tiempo. Los precios cambian, los comerciantes rotan dentro y fuera de la lista de ofertas de cada producto, y la clasificación varía según la consulta y el país. Capturarlo mediante la interfaz de chat significa muros de inicio de sesión, tarjetas cargadas de forma perezosa y campos de producto que se resuelven del lado del cliente después de que la respuesta se transmite.

El actor scraper.chatgpt devuelve ese carrusel como datos de producto estructurados: se ingresa un prompt y se obtiene un arreglo products, cada producto llevando su precio, calificación, recuento de reseñas y una lista de ofertas por comerciante. Lo que sigue es la solicitud que llena el arreglo products, una lectura campo por campo de la respuesta, un cliente Python que recopila un conjunto de prompts programados, y los actores compañeros que leen la misma forma en otros motores de respuesta. Para el lado de visibilidad del mismo cambio — qué marcas y fuentes menciona el modelo en sus respuestas — visibilidad de marca AI cubre el seguimiento de la respuesta y sus citas.


Lo que puedes hacer con ello

  • Seguimiento de participación en recomendaciones. Ejecuta un conjunto fijo de prompts de compra en un horario y registra qué productos clasifica ChatGPT para cada uno: el equivalente de compras de la participación de voz.
  • Monitoreo de precios entre comerciantes. Lee cada oferta en un producto y observa cómo se mueve el precio del mismo modelo a través de Sony, Best Buy, Walmart y Target en una sola respuesta.
  • Verificaciones de visibilidad del catálogo. Detecta cuándo tu producto entra o sale del carrusel para un prompt de categoría, y en qué rango.
  • Análisis de surtido competitivo. Captura qué productos presenta el modelo para una categoría en diferentes mercados, con calificaciones y recuentos de reseñas como campos de comparación.
  • Monitoreo de ofertas y disponibilidad. Rastrea qué comerciantes muestran stock para un producto y qué ventana de entrega cita cada uno.
  • Construcción de conjuntos de datos de compras. Recopila filas de prompt–producto–oferta como JSON limpio para modelos de precios o pipelines de evaluación.

Por qué el scraper de compras de Scrapeless ChatGPT

El scraper de compras de Scrapeless ChatGPT es el actor scraper.chatgpt con su input shopping habilitado — parte de la API de scraping universal. Para consultas de compras específicamente, ofrece:

  • Renderizado del lado del servidor de la sesión de chat, de modo que las tarjetas de producto que normalmente se resuelven del lado del cliente regresen ya pobladas.
  • Salida residencial en el país que pases, porque tanto los productos como sus precios están localizados.
  • La lista completa de ofertas por producto, no solo el precio principal: todos los comerciantes que el modelo muestra para ese artículo.
  • Un sobre ({ status, task_id, task_result }) compartido con los otros actores de LLM, para que el mismo cliente lea ChatGPT, Grok, Gemini y Perplexity.
  • Sin navegador que manejar: un punto final, un encabezado x-api-token, JSON de vuelta.

Obtén tu clave API en el plan gratuito en app.scrapeless.com.


Prerrequisitos

  • Python 3.10 o más nuevo (el cliente a continuación utiliza solo la biblioteca estándar más requests)
  • Una cuenta de Scrapeless y clave API: regístrate en app.scrapeless.com
  • La clave exportada como SCRAPELESS_API_KEY
  • Familiaridad básica con la terminal y JSON

Cómo funciona el scraper de compras de ChatGPT

La respuesta de compras es la llamada estándar scraper.chatgpt con shopping configurado en true dentro de input. El actor renderiza la consulta, espera a que se resuelva el carrusel de productos y devuelve las tarjetas como un array de products junto con el texto de respuesta habitual y fuentes citadas.

Parámetros de la solicitud

Los parámetros van dentro del objeto input, no en el nivel superior del cuerpo.

Campo input requerido descripción
prompt la pregunta de compras; fórmúlala con intención de compra para que se active el carrusel
country código de región de dos letras (por ejemplo, US); localiza tanto productos como precios
shopping no establece true para poblar el array de products; una respuesta de compras se cobra a una tarifa más alta que una respuesta simple
web_search no true permite que el modelo obtenga fuentes en vivo, lo que mejora la resolución de productos

Captura rápida con curl

bash Copy
# Requiere SCRAPELESS_API_KEY en el entorno.
curl -sS -X POST https://api.scrapeless.com/api/v2/scraper/execute \
  -H "Content-Type: application/json" \
  -H "x-api-token: ${SCRAPELESS_API_KEY}" \
  -d '{
    "actor": "scraper.chatgpt",
    "input": {
      "prompt": "mejores auriculares Sony con cancelación de ruido para comprar",
      "country": "US",
      "shopping": true,
      "web_search": true
    }
  }'
# Filtra a: | jq '.task_result.products' para el carrusel.

Sobre del respuesta

Los productos se encuentran bajo task_result.products. Cada producto tiene un price principal y un resumen de merchants, además de un array de offers con una entrada por comerciante. La siguiente estructura es una captura real para el mensaje de auriculares anterior; los valores son de un tiempo específico y el identificador del modelo fue gpt-5-mini.

json Copy
// El esquema es exactamente lo que scraper.chatgpt devuelve con compras habilitadas; los valores de los campos son una muestra ilustrativa de una ejecución en vivo (ofertas recortadas).
{
  "status": "success",
  "task_id": "…",
  "task_result": {
    "prompt": "mejores auriculares Sony con cancelación de ruido para comprar",
    "model": "gpt-5-mini",
    "result_text": "Aquí están los mejores auriculares con cancelación de ruido de Sony …",
    "products": [
      {
        "title": "Sony WH-1000XM6",
        "price": "$398.00",
        "merchants": "Sony + otros",
        "rating": 4.7,
        "num_reviews": 6021,
        "url": "https://electronics.sony.com/audio/headphones/headband/p/wh1000xm6-b",
        "image_urls": ["https://…"],
        "offers": [
          { "merchant_name": "Sony",     "price": "$398.00", "available": true, "details": "En stock en línea, Envío gratis entre Jue - Vie" },
          { "merchant_name": "Best Buy",  "price": "$398.00", "available": true, "details": "En stock en línea y cerca, Envío gratis para el Vie" },
          { "merchant_name": "Walmart",   "price": "$398.00", "available": true, "details": "" },
          { "merchant_name": "Target",    "price": "$398.00", "available": true, "details": "En stock en línea, Envío gratis entre Jun 19 - 25" }
        ]
      }
    ],
    "search_result": [ { "title": "…", "url": "https://…", "snippet": "…", "attribution": "…" } ]
  }
}

Algunas observaciones honestas de su ejecución:

  • La población es por sesión, no por llamada. Un mensaje conversacional devuelve el texto de respuesta con un array vacío, e incluso un mensaje con intención de compra puede volver con products vacío en una llamada dada: el carrusel se renderiza de manera probabilística. Un conjunto de mensajes programado captura las ejecuciones pobladas a medida que aparecen; trata un array vacío como anulable, no como un error.
  • title, price y rating se resuelven juntos. Cuando el carrusel se renderiza, esos campos llegan poblados; una llamada que solo activa parcialmente las compras puede devolver slots de productos con campos vacíos, que debes tratar como anulables y omitir.
  • offers es la superficie de monitoreo de precios. El mismo producto se repite entre comerciantes a un único punto de precio por oferta; lee el array, no solo el price de nivel superior.
  • Los precios y la disponibilidad son un punto en el tiempo. Almacena la marca de tiempo de captura en tu propio canal; la respuesta refleja el momento de la ejecución.

Integrando la API en Python: recopila un conjunto de mensajes a gran escala.

El patrón para escalar es un conjunto de indicaciones fijas, una llamada cada una, productos aplanados en filas. El cliente lee SCRAPELESS_API_KEY del entorno, solicita datos de compras y emite una fila por oferta, de modo que se obtenga directamente una tabla de precios.

python Copy
"""Recopilar datos de compras de ChatGPT para un conjunto de indicaciones (scraper.chatgpt).
    export SCRAPELESS_API_KEY=tu_token_api_aquí
    python collect_shopping.py
"""
import os
import requests

ENDPOINT = "https://api.scrapeless.com/api/v2/scraper/execute"
PROMPTS = [
    "mejores auriculares con cancelación de ruido de Sony para comprar",
    "mejor teclado mecánico económico para comprar",
    "mejor aspiradora robot por menos de $300",
]


def shop(prompt: str, country: str = "US") -> list[dict]:
    resp = requests.post(
        ENDPOINT,
        headers={
            "Content-Type": "application/json",
            "x-api-token": os.environ["SCRAPELESS_API_KEY"],
        },
        json={
            "actor": "scraper.chatgpt",
            "input": {"prompt": prompt, "country": country, "shopping": True, "web_search": True},
        },
        timeout=220,
    )
    resp.raise_for_status()
    return resp.json().get("task_result", {}).get("products", []) or []


def offer_rows(prompt: str, products: list[dict]) -> list[dict]:
    rows = []
    for rank, product in enumerate(products, start=1):
        title = product.get("title")
        if not title:  # tarjeta medio-resuelta — tratar como nula, omitir
            continue
        for offer in product.get("offers") or []:
            rows.append({
                "prompt": prompt,
                "rank": rank,
                "product": title,
                "rating": product.get("rating"),
                "reviews": product.get("num_reviews"),
                "merchant": offer.get("merchant_name"),
                "price": offer.get("price"),
                "available": offer.get("available"),
            })
    return rows


if __name__ == "__main__":
    for prompt in PROMPTS:
        rows = offer_rows(prompt, shop(prompt))
        print(f"{prompt}: {len(rows)} filas de oferta")
        for row in rows[:5]:
            print(f"  #{row['rank']} {row['product']} — {row['merchant']} {row['price']}")

Cada indicación se convierte en un conjunto de filas de productos-mercantes-precio: rango dentro del carrusel, el producto, su calificación y conteo de reseñas, y una fila por oferta del comerciante. Escribe esas filas en un almacén según un horario y los movimientos de precios, cambios de rango y agotamiento de comerciantes aparecen como series temporales.

Obtén tu clave API en el plan gratuito: app.scrapeless.com


Actores complementarios para los otros motores de respuesta

Los carruseles de compras están apareciendo en todos los motores de respuesta, y el mismo sobre lee todos ellos. Cambia el actor, mantén el cliente:

  • scraper.grok — Respuestas de Grok, con su comportamiento de búsqueda en vivo
  • scraper.gemini — Respuestas de Gemini
  • scraper.perplexity — Respuestas y fuentes de Perplexity
  • scraper.overview y scraper.aimode — Superficies de AI Overview y AI Mode de Google

Cada uno devuelve { status, task_id, task_result }, así que la función offer_rows arriba funciona sin cambios una vez que una plataforma expone productos. La comparación de los mejores scrapers LLM cubre estas superficies lado a lado.


Cómo evitar problemas comunes

  • ¿Productos vacíos? Dos causas. La indicación puede no ser lo suficientemente transaccional — usa un lenguaje de compra explícito ("mejores … para comprar", "… por menos de $300") y mantiene shopping y web_search ambos en true. O el carrusel simplemente no se renderizó en esa sesión: la población es por sesión, así que un conjunto de indicaciones programadas agrega las ejecuciones que sí devuelven tarjetas, y el código posterior trata un arreglo vacío como nulo.
  • Tarjetas medio-resueltas. Un espacio de producto puede llegar con title/price vacíos; trata esos campos como nulos y omite la fila en lugar de almacenar en blanco.
  • Salida localizada. country cambia tanto los productos como sus precios, así que defínelo por mercado y compara como con como: una ejecución de US y una de JP son diferentes conjuntos de datos.
  • Costo. La respuesta de compras se factura a una tasa más alta que una respuesta simple, así que mantén el conjunto de indicaciones limitado a los productos que realmente rastreas.

Conclusión: el carrusel como un flujo de datos

ChatGPT Shopping se reduce a una única dependencia: un único HTTP POST con shopping habilitado devuelve productos ordenados y sus ofertas por comerciante en formato JSON. Fija el país, formula el aviso para la intención de compra, lee el array offers en lugar del precio principal y trata las tarjetas medio resueltas como anulables. Ejecuta un conjunto de avisos fijos en un horario con créditos de Universal Scraping API y el carrusel se convierte en una serie temporal de precios y surtidos. La forma de la solicitud y los nombres de campo se confirman con el actor del LLM Chat Scraper en vivo.


¿Listo para construir tu canal de datos de compras con IA?

Únete a nuestra comunidad para reclamar un plan gratuito y conectar con desarrolladores que construyen canales de datos de respuesta de IA: Discord · Telegram.

Regístrate en app.scrapeless.com para créditos de prueba gratuitos y dirige el conjunto de avisos anterior a las categorías de productos y mercados que necesita tu programa de precios.


Preguntas Frecuentes

P: ¿Es legal recopilar datos de ChatGPT Shopping?
Los datos devueltos son la respuesta de compra visible públicamente que ChatGPT muestra a cualquier usuario. Al igual que con cualquier raspado, la legalidad depende de la jurisdicción y el uso: revisa los términos relevantes y consulta a un abogado antes de construir sobre esto. Recopila solo datos públicos de productos y ofertas, nunca datos personales.

P: ¿Por qué está vacío el array products?
El carrusel solo se muestra para consultas transaccionales. Un aviso conversacional devuelve result_text con un array products vacío; reformula con intención de compra y mantén shopping: true.

P: ¿Necesito un proxy o un navegador?
No. El renderizado, el manejo de sesiones y el egreso residencial se ejecutan del lado del servidor. Envías un POST con un encabezado x-api-token y lees el JSON de vuelta; el campo country selecciona el mercado de egreso.

P: ¿En qué se diferencia esto de la guía de la API del scraper de ChatGPT?
Esa guía cubre el texto de respuesta y sus citas para el seguimiento de visibilidad. Esta cubre el camino de shopping: el array products y sus offers por comerciante, para el monitoreo de precios y surtidos.

P: ¿Cuántos comerciantes se devuelven por producto?
Varios: la captura de los auriculares devolvió el mismo modelo con precios de Sony, Best Buy, Walmart, Target y más en un único array offers, cada uno con su propia disponibilidad y nota de entrega.

P: ¿Puedo ejecutar esto en diferentes países?
Sí. Pasa un country diferente por llamada; la respuesta, los productos y los precios se localizan, por lo que cada mercado es su propio conjunto de datos.

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.

Artículos más populares

Catalogar