ChatGPT vs Gemini vs Perplexidade: Comparação da Estrutura de Respostas
Lead Scraping Automation Engineer
TL;DR:
- Três atores, um transporte, três formatos de resposta.
scraper.chatgpt,scraper.geminiescraper.perplexitytodos enviam POST para o mesmo endpoint e retornam o mesmo envelope{ status, task_id, task_result }— mas os campos dentro detask_resultdiferem por ator. - O campo "sources" tem um nome diferente em cada um. ChatGPT retorna
content_referencesesearch_result; Gemini retornacitations; Perplexity retornaweb_results— a mesma ideia, três chaves, três formatos por item. O campo que você lê para obter as fontes não é portátil entre os três. - Apenas ChatGPT retorna produtos. Com
shoppinghabilitado,scraper.chatgptadiciona um arrayproductscomofferspor comerciante; Gemini e Perplexity não retornam superfície de compras. - Perplexity carrega o envelope mais rico. Além da resposta e
web_results, retorna um arraymedia_itemse uma listarelated_prompt; Gemini é o mais enxuto — texto da resposta mais um arraycitationse nada mais. - As flags de entrada diferem por ator. Todos aceitam
promptecountrydentro deinput; ChatGPT adiciona uma flag opcionalshopping, Perplexity adicionaweb_search. Os parâmetros sempre vão dentro deinput, nunca no nível superior. - Cada campo pode ser nulo e por sessão. Um array pode voltar vazio em uma execução específica, então o ator que você escolheu decide quais campos você pode contar — armazene
task_ide um timestamp de captura e leia a série, não uma única chamada. - Gratuito para começar. Novas contas Scrapeless incluem créditos de teste gratuitos — inscreva-se em app.scrapeless.com.
Introdução: um prompt, três formatos de resposta
Envie a mesma pergunta para ChatGPT, Gemini e Perplexity através do Scrapeless e três respostas voltam — em três formatos JSON diferentes. O transporte é idêntico: um POST, um cabeçalho x-api-token, um envelope { status, task_id, task_result }. O que muda é o conteúdo de task_result — a chave que contém as fontes da resposta, se produtos são retornados, se mídia e prompts de acompanhamento estão incluídos. Um cliente que lê um desses atores não lê automaticamente os outros dois.
Esta é uma comparação para desenvolvedores dos esquemas retornados, não um veredicto sobre qual modelo responde melhor. Mapeia, campo a campo, o que scraper.chatgpt, scraper.gemini e scraper.perplexity realmente retornam para o mesmo prompt, onde os esquemas divergem e qual ator capturar para qual trabalho. Para a melhor visão dos scrapers LLM da própria categoria de ferramentas, esse guia classifica as superfícies; este coloca suas formas de resposta lado a lado.
O que cada ator captura
Todos os três são Universal Scraping API atores LLM, captados da mesma forma:
scraper.chatgpt— Resposta sintetizada do ChatGPT, as fontes que citou e (comshoppingativado) um carrossel de produtos com ofertas por comerciante.scraper.gemini— Resposta do Gemini mais um array de citações. O mais enxuto dos três.scraper.perplexity— Resposta do Perplexity, suas fontes de resultados da web, mídia inline e os prompts de acompanhamento que sugere.
O contrato compartilhado: mesmo endpoint, mesmo envelope, mesma autenticação
Todos os três atores enviam POST para https://api.scrapeless.com/api/v2/scraper/execute com um cabeçalho x-api-token e um corpo de { actor, input: { prompt, country, … } }, e todos os três retornam { status, task_id, task_result }. Trocar de ator é uma mudança de uma linha.
bash
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.gemini", "input": { "prompt": "melhores tênis de corrida 2026", "country": "BR" } }'
# ator: scraper.chatgpt | scraper.gemini | scraper.perplexity
O transporte é portátil; a análise é por ator — task_result é onde eles divergem.
O corpo da resposta, comparado
Cada ator retorna a resposta sintetizada como result_text (prosa em estilo markdown). Esse nome de campo é a única coisa que o corpo da resposta compartilha entre os três. Nenhum dos três retorna variantes separadas em markdown e HTML da resposta — result_text é o único formato de resposta aqui. (O ator scraper.aimode, uma superfície diferente, é o que divide a resposta em texto/markdown/HTML; esses três não fazem isso.)
Onde os esquemas divergem: citações e fontes
"O que o modelo citou" é a mesma pergunta para os três atores e um campo diferente em cada um:
- ChatGPT divide em duas partes:
content_references[](as fontes citadas, cada uma comtitle,url,attribution) esearch_result[](os resultados da web que consultou, comtitle,url,snippet,attribution), controlados por um booleanoweb_search. - Gemini retorna um único array
citations[], e é o mais detalhado por item:title,url,website_name,snippet,faviconehighlights. - Perplexity retorna
web_results[], o item de fonte mais enxuto:name,url,snippet.
Mesmo conceito, três chaves, três formatos. Um analisador de participação de citação escrito para citations[].website_name do Gemini não funciona para web_results[].name do Perplexity sem remapeamento.
Campos únicos da plataforma
Cada ator retorna algo que os outros dois não:
- ChatGPT — produtos. Defina
input.shopping: trueescraper.chatgptadiciona um arrayproducts[], cada produto contendo um preço, classificação, contagem de avaliações e uma listaoffers[]com uma entrada por comerciante. Também retorna um id demodele um arraylinks[]. Gemini e Perplexity não têm superfície de compras. - Perplexity — mídia e follow-ups.
scraper.perplexityretorna um arraymedia_items[](image,thumbnail,url,source,medium) e uma listarelated_prompt[]de perguntas de acompanhamento sugeridas — nenhuma das quais os outros dois retornam. - Gemini — nada extra. O valor do Gemini é o oposto: uma resposta limpa de dois campos (
result_text+citations[]) sem superfície específica da plataforma para lidar.
A matriz de campos: todos os três lado a lado
| Campo conceitual | scraper.chatgpt |
scraper.gemini |
scraper.perplexity |
|---|---|---|---|
| Texto da resposta | result_text |
result_text |
result_text |
| Fontes citadas | content_references[] (title, url, attribution) |
citations[] (title, url, website_name, snippet, favicon, highlights) |
web_results[] (name, url, snippet) |
| Resultados da busca na web | search_result[] + flag web_search |
— | web_results[] |
| Produtos / ofertas | products[] + offers[] (com shopping: true) |
— | — |
| Mídia | — | — | media_items[] |
| Prompts relacionados | — | — | related_prompt[] |
| Id do modelo | model |
— | — |
| Links | links[] |
— | — |
| Prompt ecoado | prompt |
prompt |
prompt |
| Flag de entrada opcional | shopping |
— | web_search |
Leia uma coluna para saber quais campos um ator fornece; leia uma linha para ver por que um analisador não pode atender a todos os três.
Obtenha sua chave de API no plano gratuito: app.scrapeless.com
Parâmetros de entrada, comparados
O objeto input é onde reside a assimetria do lado da requisição. Todos os três requerem prompt e country; as flags opcionais diferem.
Campo input |
scraper.chatgpt |
scraper.gemini |
scraper.perplexity |
|---|---|---|---|
prompt |
obrigatório | obrigatório | obrigatório |
country |
obrigatório | obrigatório | obrigatório |
shopping |
opcional (→ products[]) |
— | — |
web_search |
opcional | — | opcional |
Cada campo está dentro de input; enviar prompt ou country no topo do nível do corpo é rejeitado.
Volatilidade e nulabilidade entre os três
A resposta é gerada por sessão, então o mesmo prompt retorna textos e comprimentos de array diferentes de uma execução para outra, em cada ator. Trate cada campo como anulável: products[] pode estar vazio mesmo com shopping ativado, citations[] e web_results[] variam em contagem, e um array persistentemente vazio significa que não houve resposta para aquela consulta — não é algo a ser enviado novamente. Armazene task_id e um carimbo de hora de captura em cada chamada para que a série temporal seja o sinal, não uma única resposta.
Guia de decisão: qual formato de resposta capturar para qual trabalho
| Se o trabalho for… | Capturar | Ler |
|---|---|---|
| Monitoramento de preços / produtos entre comerciantes | scraper.chatgpt com shopping: true |
products[] → offers[] |
| Participação de citação com metadados de fonte rica | scraper.gemini |
citations[] (website_name, highlights) |
| Rastreamento de fontes mais intenção de mídia e follow-up | scraper.perplexity |
web_results[], media_items[], related_prompt[] |
| Captura da resposta mais enxuta | scraper.gemini |
result_text |
Atenda à pergunta com o ator. Porque o transporte é compartilhado, rodar dois ou três deles no mesmo prompt e país é o mesmo cliente com uma string de ator diferente — e lhe dá a resposta da superfície de cada plataforma em uma única execução.
Conclusão: três formas, um cliente
O transporte é compartilhado e o processamento não é: scraper.chatgpt, scraper.gemini e scraper.perplexity respondem ao mesmo endpoint e envelope, mas task_result diverge — diferentes chaves de origem, produtos exclusivos do ChatGPT, mídias e acompanhamentos exclusivos do Perplexity, e a estrutura enxuta de dois campos do Gemini. Escolha o ator pelo campo que você precisa, mapeie task_result por ator e trate cada campo como anulável. Execute um conjunto fixo de prompts em um cronograma com créditos da Universal Scraping API, e um cliente captura as respostas das três plataformas. Os nomes dos campos aqui são confirmados contra execuções ao vivo de cada ator no LLM Chat Scraper de referência.
Pronto para Construir Seu Pipeline de Dados de Respostas de 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 gratuito e direcione um cliente para ChatGPT, Gemini e Perplexity para capturar todas as três formas de respostas nas consultas que seu programa rastreia.
FAQ
Q: Todos os três atores recebem a mesma entrada?
Todos os três recebem prompt e country dentro do objeto input. scraper.chatgpt adiciona uma flag opcional shopping e scraper.perplexity adiciona web_search; os parâmetros sempre vão dentro de input, nunca no nível superior.
Q: Por que os campos de citação têm nomes diferentes entre os três?
Cada ator processa a resposta renderizada de sua própria plataforma, então os dados de origem são moldados por plataforma — content_references do ChatGPT, citations do Gemini e web_results do Perplexity carregam chaves diferentes e campos diferentes por item. Leia o campo que o ator retorna em vez de assumir uma chave compartilhada.
Q: Um cliente pode ler os três sem reescrever?
Para transporte, sim — o mesmo endpoint, cabeçalho x-api-token e envelope { status, task_id, task_result }. Você troca o nome do ator e mapeia as chaves de task_result por ator, pois o conjunto de campos internos difere.
Q: Qual ator retorna dados de compras ou produtos?
scraper.chatgpt com input.shopping: true preenche um array products[] com offers[] por comerciante. Gemini e Perplexity não retornam uma interface de compras.
Q: Por que o mesmo prompt retorna campos diferentes em diferentes execuções?
As respostas são geradas por sessão e variam de execução para execução; cada campo é anulável e um array pode voltar vazio. Trate um resultado persistentemente vazio como nenhuma resposta para aquela consulta e armazene task_id mais um timestamp de captura para que a série seja o sinal.
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.



