ChatGPT vs Gemini vs Perplexidad: Comparación de la Estructura de Respuestas
Lead Scraping Automation Engineer
TL;DR:
- Tres actores, un transporte, tres formas de respuesta.
scraper.chatgpt,scraper.geminiyscraper.perplexityhacen POST al mismo punto final y devuelven el mismo sobre{ estado, task_id, task_result }— pero los campos dentro detask_resultdifieren según el actor. - El campo "fuentes" tiene un nombre diferente en cada uno. ChatGPT devuelve
content_referencesysearch_result; Gemini devuelvecitaciones; Perplexity devuelveweb_results— la misma idea, tres claves, tres formas por ítem. El campo que lees para obtener las fuentes no es portable entre los tres. - Solo ChatGPT devuelve productos. Con
shoppinghabilitado,scraper.chatgptañade un array deproductsconofferspor comerciante; Gemini y Perplexity no devuelven ninguna superficie de compras. - Perplexity tiene el sobre más completo. Además de la respuesta y
web_results, devuelve un array demedia_itemsy una lista derelated_prompt; Gemini es el más simple — texto de respuesta más un array decitationsy nada más. - Las banderas de entrada difieren por actor. Todos toman
promptycountrydentro deinput; ChatGPT añade una bandera opcionalshopping, Perplexity añadeweb_search. Los parámetros siempre van dentro deinput, nunca en el nivel superior. - Cada campo es nullable y por sesión. Un array puede volver vacío en una ejecución dada, así que el actor que elijas decide qué campos puedes confiar — guarda
task_idy una marca de tiempo de captura y lee la serie, no una sola llamada. - Gratis para empezar. Las nuevas cuentas de Scrapeless incluyen créditos de prueba gratuitos — regístrate en app.scrapeless.com.
Introducción: un prompt, tres formas de respuesta
Envía la misma pregunta a ChatGPT, Gemini y Perplexity a través de Scrapeless y regresan tres respuestas — en tres formas JSON diferentes. El transporte es idéntico: un POST, un encabezado x-api-token, un sobre { estado, task_id, task_result }. Lo que cambia es el interior de task_result — la clave que sostiene las fuentes de la respuesta, si regresan productos, si se incluyen medios y sugerencias de seguimiento. Un cliente que lee uno de estos actores no lee automáticamente a los otros dos.
Esta es una comparación para desarrolladores de los esquemas devueltos, no un veredicto sobre cuál modelo responde mejor. Mapea, campo por campo, lo que realmente devuelven scraper.chatgpt, scraper.gemini y scraper.perplexity para el mismo prompt, dónde divergen los esquemas y qué actor capturar para qué trabajo. Para la mejor vista de los scrapers de LLM de la categoría de herramientas en sí, esa guía clasifica las superficies; esta presenta sus formas de respuesta lado a lado.
Lo que captura cada actor
Los tres son Universal Scraping API actores LLM, capturados de la misma manera:
scraper.chatgpt— La respuesta sintetizada de ChatGPT, las fuentes que citó, y (conshoppingactivado) un carrusel de productos con ofertas por comerciante.scraper.gemini— La respuesta de Gemini más un array de citaciones. El más simple de los tres.scraper.perplexity— La respuesta de Perplexity, sus fuentes de resultados web, medios en línea, y las sugerencias de seguimientos que propone.
El contrato compartido: mismo punto final, mismo sobre, misma autenticación
Los tres actores hacen POST a https://api.scrapeless.com/api/v2/scraper/execute con un encabezado x-api-token y un cuerpo de { actor, input: { prompt, country, … } }, y los tres devuelven { estado, task_id, task_result }. Cambiar de actores es un cambio de una línea.
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": "mejores zapatillas para correr 2026", "country": "US" } }'
# actor: scraper.chatgpt | scraper.gemini | scraper.perplexity
El transporte es portable; el análisis es por actor — task_result es donde divergen.
El cuerpo de la respuesta, comparado
Cada actor devuelve la respuesta sintetizada como result_text (prosa con sabor a markdown). Ese nombre de campo es la única cosa que el cuerpo de la respuesta comparte entre los tres. Ninguno de los tres devuelve variantes separadas de markdown y HTML de la respuesta — result_text es el único formato de respuesta aquí. (El actor scraper.aimode, una superficie diferente, es el que divide la respuesta en texto/markdown/HTML; estos tres no lo hacen.)
Donde los esquemas divergen: citaciones y fuentes
"¿Qué citó el modelo?" es la misma pregunta para los tres actores y un campo diferente en cada uno:
- ChatGPT lo divide en dos:
content_references[](las fuentes citadas, cada una contítulo,url,atribución) ysearch_result[](los resultados web que consultó, contítulo,url,fragmento,atribución), controlado por un booleanoweb_search. - Gemini devuelve un único arreglo
citations[], y es el más detallado por elemento:título,url,nombre_del_sitio_web,fragmento,faviconydestacados. - Perplexity devuelve
web_results[], el ítem de fuente más simple:nombre,url,fragmento.
Mismo concepto, tres claves, tres formas. Un parser de participación en citas escrito contra citations[].website_name de Gemini no funciona contra web_results[].name de Perplexity sin remapeo.
Campos únicos de la plataforma
Cada actor devuelve algo que los otros dos no:
- ChatGPT — productos. Configura
input.shopping: trueyscraper.chatgptagrega un arregloproducts[], cada producto con un precio, calificación, conteo de reseñas, y una listaoffers[]con una entrada por comerciante. También devuelve un idmodely un arreglolinks[]. Gemini y Perplexity no tienen superficie de compras. - Perplexity — medios y seguimientos.
scraper.perplexitydevuelve un arreglomedia_items[](imagen,miniatura,url,fuente,medio) y una listarelated_prompt[]de preguntas de seguimiento sugeridas — ninguna de las cuales los otros dos devuelven. - Gemini — nada extra. El valor de Gemini es lo contrario: una respuesta limpia de dos campos (
result_text+citations[]) sin superficie específica de la plataforma que manejar.
La matriz de campos: los tres lado a lado
| Campo conceptual | scraper.chatgpt |
scraper.gemini |
scraper.perplexity |
|---|---|---|---|
| Texto de respuesta | result_text |
result_text |
result_text |
| Fuentes citadas | content_references[] (título, url, atribución) |
citations[] (título, url, nombre_del_sitio_web, fragmento, favicon, destacados) |
web_results[] (nombre, url, fragmento) |
| Resultados de búsqueda web | search_result[] + bandera web_search |
— | web_results[] |
| Productos / ofertas | products[] + offers[] (con shopping: true) |
— | — |
| Medios | — | — | media_items[] |
| Prompts relacionados | — | — | related_prompt[] |
| Id de modelo | model |
— | — |
| Enlaces | links[] |
— | — |
| Prompt eco | prompt |
prompt |
prompt |
| Bandera de entrada opcional | shopping |
— | web_search |
Lee hacia abajo una columna para saber qué campos te da un actor; lee a través de una fila para ver por qué un parser no puede servir a los tres.
Obtén tu clave API en el plan gratuito: app.scrapeless.com
Parámetros de entrada, comparados
El objeto input es donde vive la asimetría del lado de la solicitud. Los tres requieren prompt y país; las banderas opcionales difieren.
Campo input |
scraper.chatgpt |
scraper.gemini |
scraper.perplexity |
|---|---|---|---|
prompt |
requerido | requerido | requerido |
país |
requerido | requerido | requerido |
shopping |
opcional (→ products[]) |
— | — |
web_search |
opcional | — | opcional |
Cada campo está dentro de input; enviar prompt o país en el nivel superior del cuerpo es rechazado.
Volatilidad y nulidad a través de los tres
La respuesta se genera por sesión, por lo que el mismo prompt devuelve texto diferente y longitudes de arreglo diferentes de una ejecución a otra, en cada actor. Trata cada campo como nullable: products[] puede estar vacío incluso con shopping activado, citations[] y web_results[] varían en cantidad, y un arreglo persistentemente vacío significa que no hubo respuesta para esa consulta — no es algo que enviar de nuevo. Almacena task_id y una marca de tiempo de captura en cada llamada para que la serie temporal sea la señal, no una única respuesta.
Guía de decisión: qué forma de respuesta capturar para qué trabajo
| Si el trabajo es… | Captura | Lee |
|---|---|---|
| Monitoreo de precios / productos entre comerciantes | scraper.chatgpt con shopping: true |
products[] → offers[] |
| Participación en citas con metadatos ricos de la fuente | scraper.gemini |
citations[] (nombre_del_sitio_web, destacados) |
| Seguimiento de fuentes más medios e intención de seguimiento | scraper.perplexity |
web_results[], media_items[], related_prompt[] |
| Captura de respuesta más simple | scraper.gemini |
result_text |
Asigna el actor a la pregunta. Porque el transporte es compartido, ejecutar dos o tres de ellos en el mismo prompt y país es el mismo cliente con una cadena de actor diferente — y te da la respuesta de la superficie de cada plataforma en una sola pasada.
Conclusión: tres formas, un cliente
El transporte es compartido y el análisis no lo es: scraper.chatgpt, scraper.gemini y scraper.perplexity responden al mismo endpoint y sobre la misma estructura, pero task_result diverge: diferentes claves de origen, productos exclusivos de ChatGPT, medios y seguimientos solo de Perplexity, la forma ligera de dos campos de Gemini. Selecciona el actor por el campo que necesites, mapea task_result por actor y trata cada campo como nulo. Ejecuta un conjunto fijo de prompts en un horario con créditos de Universal Scraping API, y un cliente captura las respuestas de las tres plataformas. Los nombres de los campos aquí se confirman contra ejecuciones en vivo de cada actor en el LLM Chat Scraper.
¿Listo para construir tu canal de datos de respuestas de IA?
Únete a nuestra comunidad para reclamar un plan gratuito y conectarte con desarrolladores que están construyendo canales de datos de respuestas de IA: Discord · Telegram.
Regístrate en app.scrapeless.com para obtener créditos de prueba gratuitos y apunta un cliente a ChatGPT, Gemini y Perplexity para capturar las tres formas de respuesta en las consultas que rastrea tu programa.
Preguntas Frecuentes
P: ¿Los tres actores toman la misma entrada?
Los tres toman prompt y country dentro del objeto input. scraper.chatgpt agrega una bandera shopping opcional y scraper.perplexity agrega web_search; los parámetros siempre van dentro de input, nunca en el nivel superior.
P: ¿Por qué los campos de citación tienen nombres diferentes en los tres?
Cada actor analiza la respuesta renderizada de su propia plataforma, por lo que los datos de origen se conforman por plataforma: las content_references de ChatGPT, las citations de Gemini y los web_results de Perplexity llevan claves diferentes y campos diferentes por ítem. Lee el campo que devuelve ese actor en lugar de asumir una clave compartida.
P: ¿Puede un cliente leer los tres sin reescritura?
Para el transporte, sí: el mismo endpoint, el encabezado x-api-token y el sobre { status, task_id, task_result }. Cambias el nombre del actor y mapeas las claves de task_result por actor, porque el conjunto de campos internos difiere.
P: ¿Qué actor devuelve datos de compras o productos?
scraper.chatgpt con input.shopping: true llena un array products[] con offers[] por comerciante. Gemini y Perplexity no devuelven una superficie de compras.
P: ¿Por qué el mismo prompt devuelve diferentes campos en diferentes ejecuciones?
Las respuestas se generan por sesión y varían de una ejecución a otra; cada campo es nulo y un array puede volver vacío. Trata un resultado persistentemente vacío como ninguna respuesta para esa consulta, y almacena task_id más una marca de tiempo de captura para que la serie sea la señal.
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.



