Dados de Compras do ChatGPT: Coleta de Produtos, Preços e Ofertas em Grande Escala
Advanced Data Extraction Specialist
TL;DR:
- Os dados de compras do ChatGPT são uma saída de produto estruturada, não capturas de tela. Um POST para o ator
scraper.chatgptcomshoppingativado retorna produtos classificados, cada um com um preço, rating, contagem de avaliações e uma lista de ofertas por comerciante — como campos JSON. - Cada produto carrega ofertas de múltiplos comerciantes. Um único resultado de fones de ouvido retorna o mesmo modelo com preços da Sony, Best Buy, Walmart, Target e outros comerciantes em um array
offers, cada um com sua própria disponibilidade e nota de entrega. - A flag de compras está dentro de
input. A chamada que retorna produtos é{"actor":"scraper.chatgpt","input":{"prompt":"...","country":"US","shopping":true}}contraPOST /api/v2/scraper/execute— os parâmetros de compras de nível superior são rejeitados. - O carrossel de produtos é renderizado por sessão, não em cada chamada. Um prompt de intenção de compra preenche
productsquando o ChatGPT mostra cartões de compras naquela sessão; a mesma chamada pode retornar apenas o texto da resposta com um array vazio — assim, a coleta é executada como um conjunto de prompts agendados e agrega as execuções populadas. - As respostas de compras custam mais do que respostas simples. Retornar cartões de produtos resolvidos é cobrado a uma taxa mais alta, por isso restrinja o conjunto de prompts aos produtos que importam.
- O envelope combina com os outros atores LLM. Cada chamada retorna
{ status, task_id, task_result }, portanto, um cliente escrito aqui se estende ao Grok, Gemini e Perplexity sem alterações. - Gratuito para começar. Novas contas Scrapeless incluem créditos de teste gratuitos — inscreva-se em app.scrapeless.com.
Introdução: o botão de compra mudou para a resposta
O ChatGPT agora responde a perguntas de compras com um carrossel de produtos. Um comprador pede os melhores fones de ouvido com cancelamento de ruído, e o modelo retorna produtos classificados com imagens, preços, classificações em estrelas e uma linha de comerciantes para comprar — dentro do chat, antes que qualquer loja receba um clique. Para uma marca, um ranking de página de resultados não decide mais a venda; o que importa é se seu produto aparece naquele carrossel, e a que preço.
Essa superfície é difícil de ler a olho nu e mais difícil de acompanhar ao longo do tempo. Os preços mudam, os comerciantes rotacionam dentro e fora da lista de ofertas de cada produto, e o ranking muda por consulta e país. Capturá-lo dirigindo a interface de chat significa barreiras de login, cartões carregados de forma lenta e campos de produtos que se resolvem do lado do cliente depois que a resposta chega.
O ator scraper.chatgpt retorna esse carrossel como dados de produto estruturados: prompt para dentro, um array products para fora, cada produto carregando seu preço, rating, contagem de avaliações e uma lista de ofertas por comerciante. O que segue é a solicitação que preenche o array products, uma leitura campo a campo da resposta, um cliente Python que coleta um conjunto de prompts em uma programação e os atores acompanhantes que leem a mesma estrutura nos outros mecanismos de resposta. Para o lado da visibilidade da mesma mudança — quais marcas e fontes o modelo menciona em suas respostas — visibilidade da marca AI cobre o rastreamento da resposta e suas citações.
O que você pode fazer com isso
- Rastreamento de compartilhamento de recomendações. Execute um conjunto fixo de prompts de compra em uma programação e registre quais produtos o ChatGPT classifica para cada um — o equivalente em compras à participação de voz.
- Monitoramento de preços entre comerciantes. Leia cada oferta em um produto e observe o movimento do preço do mesmo modelo entre Sony, Best Buy, Walmart e Target a partir de uma única resposta.
- Verificações de visibilidade de catálogo. Detecte quando seu produto entra ou sai do carrossel para um prompt de categoria, e em que classificação.
- Análise de sortimento competitivo. Capture quais produtos o modelo apresenta para uma categoria em diferentes mercados, com classificações e contagens de avaliações como campos de comparação.
- Monitoramento de ofertas e disponibilidade. Acompanhe quais comerciantes mostram estoque disponível para um produto e qual janela de entrega cada um cita.
- Construção de conjunto de dados de compras. Colete linhas de prompt–produto–oferta como JSON limpo para modelos de preços ou pipelines de avaliação.
Por que o Scraper de Compras ChatGPT da Scrapeless
O scraper de compras ChatGPT da Scrapeless é o ator scraper.chatgpt com sua entrada shopping ativada — parte da linha Universal Scraping API. Para consultas de compras especificamente, ele traz:
- Renderização do lado do servidor da sessão de chat, para que os cartões de produtos que normalmente se resolvem do lado do cliente venham já populados.
- Saída residencial no país que você passar, porque tanto os produtos quanto seus preços são localizados.
- A lista completa de ofertas por produto, não apenas o preço principal — cada comerciante que o modelo exibe para aquele item.
- Um envelope (
{ status, task_id, task_result }) compartilhado com os outros atores LLM, para que o mesmo cliente leia ChatGPT, Grok, Gemini e Perplexity. - Sem navegador para operar: um endpoint, um cabeçalho
x-api-token, JSON de volta.
Obtenha sua chave de API no plano gratuito em app.scrapeless.com.
Pré-requisitos
- Python 3.10 ou superior (o cliente abaixo usa apenas a biblioteca padrão mais
requests) - Uma conta Scrapeless e chave de API — inscreva-se em app.scrapeless.com
- A chave exportada como
SCRAPELESS_API_KEY - Familiaridade básica com o terminal e JSON
Como funciona o scraper de compras do ChatGPT
A resposta de compras é a chamada padrão scraper.chatgpt com shopping definido como true dentro de input. O ator renderiza a consulta, aguarda a resolução do carrossel de produtos e retorna os cartões como uma matriz products ao lado do texto de resposta habitual e fontes citadas.
Parâmetros da Solicitação
Os parâmetros vão dentro do objeto input, não no nível superior do corpo.
Campo input |
obrigatório | descrição |
|---|---|---|
prompt |
sim | a pergunta de compras; formule com intenção de compra para que o carrossel seja acionado |
country |
sim | código de região de duas letras (ex: BR); localiza produtos e preços |
shopping |
não | defina true para preencher a matriz products; uma resposta de compras é cobrada a uma taxa mais alta do que uma resposta simples |
web_search |
não | true permite que o modelo busque fontes ao vivo, o que melhora a resolução de produtos |
Captura Rápida com curl
bash
# Requer SCRAPELESS_API_KEY no ambiente.
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": "melhores fones de ouvido com cancelamento de ruído da Sony para comprar",
"country": "BR",
"shopping": true,
"web_search": true
}
}'
# Encaminhar para: | jq '.task_result.products' para o carrossel.
Envelope de Resposta
Os produtos estão sob task_result.products. Cada produto possui um price em destaque e um resumo de merchants, além de uma matriz offers com uma entrada por comerciante. A forma abaixo é uma captura real para o prompt dos fones de ouvido acima; os valores são de um ponto no tempo e o identificador do modelo foi gpt-5-mini.
json
// O esquema é exatamente o que scraper.chatgpt retorna com a compra habilitada; os valores dos campos são uma amostra ilustrativa de uma execução ao vivo (ofertas ajustadas).
{
"status": "success",
"task_id": "…",
"task_result": {
"prompt": "melhores fones de ouvido com cancelamento de ruído da Sony para comprar",
"model": "gpt-5-mini",
"result_text": "Aqui estão os melhores fones de ouvido com cancelamento de ruído da Sony …",
"products": [
{
"title": "Sony WH-1000XM6",
"price": "R$ 398,00",
"merchants": "Sony + outros",
"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": "R$ 398,00", "available": true, "details": "Em estoque online, entrega gratuita entre Qui - Sex" },
{ "merchant_name": "Best Buy", "price": "R$ 398,00", "available": true, "details": "Em estoque online e nas proximidades, entrega gratuita até Sexta" },
{ "merchant_name": "Walmart", "price": "R$ 398,00", "available": true, "details": "" },
{ "merchant_name": "Target", "price": "R$ 398,00", "available": true, "details": "Em estoque online, entrega gratuita entre 19 - 25 Jun" }
]
}
],
"search_result": [ { "title": "…", "url": "https://…", "snippet": "…", "attribution": "…" } ]
}
}
Algumas observações honestas ao executá-lo:
- A população é por sessão, não por chamada. Um prompt conversacional retorna o texto da resposta com uma matriz vazia, e até mesmo um prompt de intenção de compra pode retornar com
productsvazio em uma determinada chamada — o carrossel renderiza probabilisticamente. Um prompt programado captura as execuções populadas à medida que aparecem; trate uma matriz vazia como anulável, não como um erro. title,priceeratingse resolvem juntos. Quando o carrossel é renderizado, esses campos chegam populados; uma chamada que apenas aciona parcialmente a compra pode retornar slots de produtos com campos vazios, que você trata como anuláveis e ignora.offersé a superfície de monitoramento de preços. O mesmo produto se repete entre comerciantes em um ponto de preço por oferta; leia a matriz, não apenas opricede nível superior.- Preços e disponibilidade são de um ponto no tempo. Armazene o timestamp da captura em seu próprio pipeline; a resposta reflete o momento da execução.
Integrando a API em Python: colete um conjunto de prompts em grande escala
O padrão para a escala é um conjunto fixo de prompts, uma chamada cada, com produtos achatados em linhas. O cliente lê SCRAPELESS_API_KEY do ambiente, solicita dados de compras e emite uma linha por oferta para que uma tabela de preços seja gerada diretamente.
python
"""Coletar dados de compras do ChatGPT para um conjunto de prompts (scraper.chatgpt).
export SCRAPELESS_API_KEY=seu_token_api_aqui
python collect_shopping.py
"""
import os
import requests
ENDPOINT = "https://api.scrapeless.com/api/v2/scraper/execute"
PROMPTS = [
"melhores fones de ouvido com cancelamento de ruído da Sony para comprar",
"melhor teclado mecânico econômico para comprar",
"melhor aspirador robô abaixo 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: # cartão meio-resolvido — trate como anulável, ignore
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)} linhas de ofertas")
for row in rows[:5]:
print(f" #{row['rank']} {row['product']} — {row['merchant']} {row['price']}")
Cada prompt torna-se um conjunto de linhas de produto-comerciante-preço: classificação dentro do carrossel, o produto, sua classificação e contagem de resenhas, e uma linha por oferta de comerciante. Escreva essas linhas em um armazém em uma programação e movimentos de preços, mudanças de classificação e churn de comerciantes surgem como séries temporais.
Obtenha sua chave de API no plano gratuito: app.scrapeless.com
Atores acompanhantes para os outros motores de resposta
Carrosséis de compras estão aparecendo em todos os motores de resposta, e o mesmo envelope lê todos eles. Troque o ator, mantenha o cliente:
scraper.grok— Respostas do Grok, com seu comportamento de busca ao vivoscraper.gemini— Respostas do Geminiscraper.perplexity— Respostas e fontes do Perplexityscraper.overviewescraper.aimode— Superfícies da Visão Geral da IA do Google e Modo de IA
Cada um retorna { status, task_id, task_result }, então a função offer_rows acima funciona sem mudanças uma vez que uma plataforma expõe produtos. A comparação dos melhores scrapers LLM cobre essas superfícies lado a lado.
Como evitar problemas comuns
- Produtos vazios? Duas causas. O prompt pode não ser suficientemente transacional — use linguagem de compra explícita ("melhor ... para comprar", "... abaixo de $300") e mantenha
shoppingeweb_searchambostrue. Ou o carrossel simplesmente não foi renderizado naquela sessão: a população é por sessão, então um conjunto de prompts agendado agrega as execuções que retornam cards, e o código a jusante trata um array vazio como anulável. - Cartões meio-resolvidos. Um slot de produto pode chegar com
title/pricevazios; trate esses campos como anuláveis e pule a linha ao invés de armazenar brancos. - Saída localizada.
countrymuda tanto os produtos quanto seus preços, então defina-o por mercado e compare como frutas com frutas — uma execução emUSe uma emJPsão conjuntos de dados diferentes. - Custo. A resposta de compras é cobrada a uma taxa mais alta do que uma resposta simples, então mantenha o conjunto de prompts restrito aos produtos que você realmente rastreia.
Conclusão: o carrossel como um feed de dados
O ChatGPT Shopping se reduz a uma única dependência: um único HTTP POST com shopping ativado retorna produtos classificados e suas ofertas por comerciante em formato JSON. Defina o país, formule o prompt para intenção de compra, leia o array offers em vez do preço principal e trate cartões meio resolvidos como anuláveis. Execute um conjunto fixo de prompts em uma programação com créditos da Universal Scraping API e o carrossel se torna uma série temporal de preço e sortimento. A forma da solicitação e os nomes dos campos são confirmados com o LLM Chat Scraper ativo.
Pronto para Construir Seu Pipeline de Dados de Compras com IA?
Junte-se à nossa comunidade para reivindicar um plano gratuito e conectar-se com desenvolvedores que estão construindo pipelines de dados de respostas de IA: Discord · Telegram.
Inscreva-se em app.scrapeless.com para créditos de teste gratuitos e direcione o conjunto de prompts acima para as categorias de produtos e mercados necessários para seu programa de precificação.
Perguntas Frequentes
P: É legal coletar dados do ChatGPT Shopping?
Os dados retornados são a resposta de compras publicamente visível que o ChatGPT mostra a qualquer usuário. Assim como em qualquer raspagem, a legalidade depende da jurisdição e do uso — revise os termos relevantes e consulte um advogado antes de construir sobre isso. Colete apenas dados públicos de produtos e ofertas, nunca dados pessoais.
P: Por que o array products está vazio?
O carrossel só é renderizado para consultas transacionais. Um prompt conversacional retorna result_text com um array products vazio; reformule com intenção de compra e mantenha shopping: true.
P: Preciso de um proxy ou de um navegador?
Não. Renderização, gerenciamento de sessões e egressos residenciais são executados no lado do servidor. Você envia um POST com um cabeçalho x-api-token e recebe JSON de volta; o campo country seleciona o mercado de egressos.
P: Como isso é diferente do guia da API do scraper do ChatGPT?
Esse guia cobre o texto da resposta e suas citações para rastreamento de visibilidade. Este cobre o caminho shopping: o array products e suas offers por comerciante, para monitoramento de preços e sortimento.
P: Quantos comerciantes retornam por produto?
Vários — a captura de fones de ouvido retornou o mesmo modelo com preços iguais em Sony, Best Buy, Walmart, Target e mais em um único array offers, cada um com sua própria disponibilidade e nota de entrega.
P: Posso rodar isso em diferentes países?
Sim. Passe um country diferente por chamada; a resposta, os produtos e os preços são todos localizados, então cada mercado é seu próprio conjunto de dados.
Na Scorretless, acessamos apenas dados disponíveis ao público, enquanto cumprem estritamente as leis, regulamentos e políticas de privacidade do site aplicáveis. O conteúdo deste blog é apenas para fins de demonstração e não envolve atividades ilegais ou infratoras. Não temos garantias e negamos toda a responsabilidade pelo uso de informações deste blog ou links de terceiros. Antes de se envolver em qualquer atividade de raspagem, consulte seu consultor jurídico e revise os termos de serviço do site de destino ou obtenha as permissões necessárias.



