La semana pasada, un compañero del equipo de ventas me pidió ayuda para sacar información de contacto de unas 200 páginas de directorios de empresas. ¿Su plan? Copiar y pegar cada una en una hoja de cálculo. Le sugerí que probara ChatGPT para generar un scraper en Python. Veinte minutos después, ya tenía un script. Treinta minutos más tarde, me escribió por DM: «Funcionó con las primeras cinco páginas y luego… se paró».
Esa experiencia es más común de lo que parece. ChatGPT de verdad es muy bueno escribiendo código de scraping, hasta que deja de serlo. Y la mayoría de los tutoriales en internet se quedan en la fase de “mira, funciona en este sitio de prueba”, y te dejan colgado justo cuando llegas a una página real con JavaScript, barreras anti-bot o paginación. En esta guía voy a mostrarte cómo se ve en la práctica el web scraping con ChatGPT: el flujo completo, cinco plantillas de prompts reutilizables (no solo un ejemplo), un análisis honesto de dónde falla y qué hacer cuando eso pasa, incluidas alternativas sin código como que eliminan por completo la necesidad de programar.
¿Qué es el web scraping con ChatGPT?
“Web scraping con ChatGPT” significa usar ChatGPT para ayudarte a extraer datos de sitios web. Pero hay una diferencia clave que mucha gente pasa por alto: ChatGPT no hace el scraping por sí solo. No puede visitar una URL, descargar HTML ni navegar entre páginas haciendo clic. Lo que sí puede hacer es generar el código (normalmente en Python) que realiza esas tareas, o interpretar el HTML en bruto que pegues en el chat y devolverte los datos estructurados.
Hay dos enfoques principales:
- ChatGPT como generador de código: tú describes la página y los datos que necesitas, y ChatGPT escribe un script de Python (normalmente con BeautifulSoup, Selenium o Playwright) para que tú lo ejecutes en tu equipo.
- ChatGPT como parser de datos: copias y pegas el HTML en bruto en el chat (o lo subes mediante Code Interpreter), y ChatGPT extrae los campos que necesitas en formato JSON o CSV.
En ambos casos, tú eres quien hace la descarga y la ejecución. ChatGPT es el cerebro, no las manos. Incluso con el nuevo navegador ChatGPT Atlas (lanzado en octubre de 2025), que puede navegar por la web de forma conversacional, devuelve respuestas —no tablas CSV estructuradas con 500 filas de productos—. Es un asistente de navegación, no una canalización de extracción de datos.
Por qué usar ChatGPT para web scraping (y para quién sirve)
ChatGPT baja muchísimo la barrera de entrada al web scraping. Según la , el de los desarrolladores ya usan o planean usar herramientas de IA en su flujo de trabajo, y ChatGPT lidera con un 82% de participación. Pero el público de “web scraping con ChatGPT” no son solo desarrolladores. También lo usan SDRs que montan listas de prospectos, responsables de ecommerce que siguen precios de la competencia, analistas inmobiliarios que recopilan datos de anuncios y equipos de marketing que agregan contenido.
Aquí tienes una vista rápida de los casos de uso más comunes y quién se beneficia:
| Caso de uso | Quién se beneficia | Qué se extrae |
|---|---|---|
| Extracción de leads de ventas | SDRs, operaciones de ventas | Nombres, correos, teléfonos de directorios |
| Monitoreo de precios de la competencia | Ecommerce, equipos de pricing | Nombres de producto, precios, disponibilidad, SKU |
| Investigación de mercado | Analistas, fundadores | Información de empresa, reseñas, valoraciones, listas de funciones |
| Recolección de datos inmobiliarios | Agentes, inversores | Precios de propiedades, direcciones, habitaciones/baños, datos del agente |
| Agregación de contenido | Marketing, equipos SEO | Títulos de artículos, URLs, fechas de publicación, autores |
Copiar datos manualmente de 100 páginas puede llevarte entre 3 y 5 horas. Un script generado por ChatGPT puede hacer lo mismo en minutos —si funciona—. Y ese “si” es el verdadero tema de este artículo.
Gartner prevé que para 2026 los desarrolladores fuera de los departamentos formales de TI representarán de los usuarios de herramientas low-code. Quienes buscan “web scraping con ChatGPT” son cada vez más usuarios no técnicos que quieren datos sin contratar a un ingeniero. Para ellos, ChatGPT suele ser el primer paso; cuando el script se niega a ejecutarse, recurren a herramientas como Thunderbit.
Cómo funciona el web scraping con ChatGPT: guía paso a paso
Aquí va el flujo completo, de principio a fin, usando una página de directorio de empresas —no un sitio de juguete.
- Dificultad: intermedia (necesitas soltura básica con Python)
- Tiempo estimado: ~15–30 minutos para el primer scrape
- Qué necesitas: navegador Chrome, entorno Python (Python 3.10+), ChatGPT (la versión gratuita sirve) y una URL objetivo
Paso 1: inspecciona el sitio e identifica los datos que necesitas
Abre en Chrome la página que quieres extraer. Haz clic derecho sobre el dato que te interesa (por ejemplo, el nombre de una empresa) y elige Inspeccionar. Eso abrirá Chrome DevTools y resaltará el elemento HTML.
Fíjate en los selectores CSS: cosas como h2.business-name, span.phone, o a.website-link. Cuanto más precisos sean tus selectores, mejor será el resultado que te dé ChatGPT. Copia un fragmento representativo del HTML (una “tarjeta” o “fila” de datos) para pegarlo luego en el prompt.
Ahora deberías tener una lista corta de nombres de campos (por ejemplo, business_name, phone, website_url) y sus selectores CSS correspondientes.
Paso 2: escribe un prompt detallado para ChatGPT
Aquí es donde fallan la mayoría de los tutoriales: te dan un prompt vago y esperan que todo salga bien. Un buen prompt de scraping tiene seis partes:
- Lenguaje y librería: “Escribe un script en Python 3.11 usando BeautifulSoup 4.”
- URL objetivo: la página exacta que quieres extraer.
- Selectores CSS: para cada campo, el selector que encontraste en el Paso 1.
- Formato de salida: CSV, JSON o ambos.
- Instrucciones especiales: codificación, manejo de errores, retrasos.
- Fragmento HTML: pega 20–40 líneas del HTML real de la página para que ChatGPT vea la estructura.
Aquí tienes un prompt de ejemplo con anotaciones:
1Eres un ingeniero senior de Python. Escribe un scraper web usando Python 3.11 y BeautifulSoup 4.
2URL objetivo: https://example.com/businesses
3Objetivo: extraer cada tarjeta de empresa de la página y devolver una fila por empresa.
4Campos necesarios (selectores CSS entre paréntesis):
5- business_name (h2.biz-name)
6- phone (span.phone-number)
7- website_url (a.biz-link, href)
8- rating (div.stars[data-rating])
9Salida: guardar en businesses.csv con codificación UTF-8 y una fila de encabezado.
10Requisitos:
11- Usa requests con un User-Agent realista
12- Gestiona los campos faltantes con elegancia (None, sin romper el script)
13- Imprime al final cuántas empresas se extrajeron
14- Añade una pausa de 1 segundo entre solicitudes si haces un bucle
15Aquí tienes un fragmento representativo del HTML de la página (una tarjeta de empresa):
16<PEGA AQUÍ 20-40 LÍNEAS DEL HTML REAL>
Consejo: incluir el fragmento HTML es el mayor acelerador de precisión. ChatGPT no puede visitar la URL, así que ese fragmento es su única referencia real de la estructura de la página.
Paso 3: revisa y prueba el código generado
No ejecutes el código de ChatGPT a ciegas. Léelo primero. Busca:
- Selectores inventados: a veces ChatGPT se saca clases CSS que no existen en la página.
- Librerías faltantes: verifica que se incluyan
pip install requests beautifulsoup4(oplaywright, etc.). - Valores codificados: comprueba que la URL, los nombres de campos y las rutas de archivo sean correctos.
Crea un entorno virtual de Python, instala las dependencias y prueba el script con una muestra pequeña (una o dos páginas). Revisa el CSV de salida: ¿las columnas tienen datos? ¿Hay celdas vacías donde esperabas información?
Paso 4: ajusta con prompts de seguimiento
ChatGPT brilla cuando iteras. Si el primer script solo extrae la página 1, pregúntale:
“El script solo extrae la primera página. ¿Puedes añadir paginación para extraer todas las páginas? El sitio usa ?page=1, ?page=2, etc. Detente cuando una página devuelva cero resultados o después de 50 páginas.”
Si faltan campos, pídele a ChatGPT que añada alternativas con regex para correos o teléfonos. Si el sitio depende mucho de JavaScript, solicita una versión con Playwright. Cada prompt de seguimiento construye sobre el código anterior: piénsalo como programar en pareja con un colaborador muy rápido, pero a veces demasiado confiado.
5 plantillas de prompts de ChatGPT para web scraping que puedes copiar y pegar
No he encontrado otra guía que ofrezca esto. He redactado, probado y refinado cinco plantillas de prompts organizadas por escenario. Copia la que te encaje, cambia la URL y el fragmento HTML, y ChatGPT te devolverá código funcional a la primera —o muy cerca de ello—.
Plantilla 1: scraper de páginas de listados (catálogos de productos, directorios)
Cuándo usarla: estás en una página con muchos elementos (productos, empresas, ofertas de empleo) y quieres una fila por elemento.
1Eres un ingeniero senior de Python. Escribe un scraper web usando Python 3.11 y BeautifulSoup 4.
2URL objetivo: [TU URL]
3Objetivo: extraer cada tarjeta de la página y devolver una fila por elemento.
4Campos necesarios (selectores CSS entre paréntesis — obtenidos desde Inspeccionar):
5- [campo_1] ([selector_1])
6- [campo_2] ([selector_2])
7- [campo_3] ([selector_3])
8- [campo_4] ([selector_4, atributo si hace falta])
9Salida: guardar en items.csv con codificación UTF-8 y una fila de encabezado.
10Requisitos:
11- Usa requests con un User-Agent realista
12- Gestiona los campos faltantes con elegancia (None, sin romper el script)
13- Imprime al final cuántos elementos se extrajeron
14- Añade una pausa de 1 segundo entre solicitudes si haces un bucle
15Aquí tienes un fragmento representativo del HTML de la página (una tarjeta de elemento):
16[PEGA AQUÍ 20-40 LÍNEAS DEL HTML REAL]
Salida esperada: un archivo CSV con una fila por elemento, y columnas que coinciden con tus nombres de campo.
Plantilla 2: scraper de detalle/subpágina (productos o perfiles individuales)
Cuándo usarla: tienes una sola página con información detallada (una ficha de producto, el perfil de una persona, un anuncio inmobiliario) y quieres extraerlo todo en un registro estructurado.
1Escribe una función de Python `scrape_detail(url)` que reciba la URL de una página de detalle y devuelva un diccionario con estas claves:
2- [campo_1]
3- [campo_2]
4- [campo_3]
5- [campo_4]
6- [campo_5]
7Usa BeautifulSoup. Gestiona cualquier campo faltante con elegancia (devuelve None).
8Incluye alternativas con regex para correo y teléfono — no todas las páginas los envuelven en etiquetas consistentes.
9Devuelve el diccionario y además añádelo como una fila a details.csv (crea el archivo con encabezado en la primera llamada).
10Fragmento HTML de referencia de una página de detalle real:
11[PEGA AQUÍ 40-60 LÍNEAS DEL HTML DE UNA PÁGINA DE DETALLE]
Salida esperada: un diccionario por página y un CSV que va creciendo con una fila por página de detalle.
Plantilla 3: scraper para páginas dinámicas/renderizadas con JS (Playwright)
Cuándo usarla: la página carga contenido mediante JavaScript (React, Angular, etc.) — ves un <div id="root"> vacío en el HTML fuente.
1Escribe un scraper web en Python usando Playwright (API síncrona) para una página renderizada con JavaScript.
2URL objetivo: [TU URL]
3Objetivo: extraer todas las tarjetas de resultados que aparecen después de que la página termine de cargar dinámicamente.
4Requisitos:
5- Usa `page.wait_for_selector('[TU_SELECTOR_DE_TARJETA]', timeout=15000)` para esperar al contenido
6- Desplázate hasta el final de la página dos veces, con una pausa de 1 segundo entre desplazamientos, para activar resultados cargados bajo demanda
7- De cada tarjeta extrae: [campo_1], [campo_2], [campo_3], [campo_4]
8- Guarda el resultado en results.json como una lista de diccionarios, en UTF-8
9- Ejecuta primero headless=False (para que pueda verlo) y añade una pausa de 2 segundos al final antes de cerrar
10No uses requests ni BeautifulSoup — solo Playwright.
Salida esperada: un archivo JSON con un objeto por tarjeta de resultado, con todos los campos rellenados.
Plantilla 4: manejador de paginación (scraping de múltiples páginas)
Cuándo usarla: ya tienes un scraper funcional de una sola página y necesitas recorrer todas las páginas.
1Toma el scraper existente con BeautifulSoup de abajo y envuélvelo en un bucle de paginación que recopile TODAS las páginas, no solo la 1.
2El sitio usa paginación por parámetro de URL: ?page=1, ?page=2, etc.
3Condición de parada: cuando la página actual devuelva cero elementos, O cuando el estado de respuesta no sea 200, O cuando llegues a la página 100 (límite de seguridad).
4Añade:
5- Una pausa respetuosa de 1.5 segundos entre solicitudes de página
6- Un bloque try/except alrededor de cada solicitud que registre el error y continúe
7- Un mensaje de progreso cada 5 páginas: "Página 15 → 300 elementos hasta ahora"
8- Guardado final en items_all.csv
9Scraper actual:
10[PEGA AQUÍ TU SCRAPER ACTUAL DE UNA SOLA PÁGINA]
Salida esperada: un único CSV con todos los elementos de todas las páginas, además de salida en consola mostrando el progreso.
Plantilla 5: limpieza y estructuración de datos (el enfoque de “pegar HTML”)
Cuándo usarla: ya tienes HTML en bruto (de curl, de tu navegador o de un archivo) y solo quieres que ChatGPT lo convierta en datos limpios y estructurados —sin código.
1Voy a pegar HTML en bruto de una página de detalle de producto. No necesitas escribir código — solo devuelve los datos extraídos como un objeto JSON que coincida con este esquema:
2{
3 "name": string,
4 "brand": string,
5 "price": number,
6 "currency": string (ISO 4217),
7 "availability": "in_stock" | "out_of_stock" | "preorder" | "unknown",
8 "rating": number (0-5) or null,
9 "review_count": integer or null,
10 "description": string (max 500 chars),
11 "key_specs": [{"name": string, "value": string}]
12}
13Usa null para cualquier cosa que realmente no puedas encontrar — NO inventes datos.
14Devuelve SOLO el objeto JSON, sin texto adicional ni bloque markdown.
15HTML:
16[PEGA AQUÍ EL HTML COMPLETO DE LA PÁGINA]
Salida esperada: un único objeto JSON, listo para llevar a una hoja de cálculo o base de datos.
Dónde falla el web scraping con ChatGPT (limitaciones honestas)
La mayoría de los tutoriales se saltan por completo esta parte. Yo he pasado suficiente tiempo depurando scrapers generados por ChatGPT como para saber exactamente dónde se rompen —y la confirma que solo el de los desarrolladores “confía mucho” en la salida de la IA. Aquí está el motivo.
Sitios web dinámicos y cargados de JavaScript
Más del de los sitios web usan JavaScript para la funcionalidad del lado del cliente. Solo React ya se ejecuta en el 7,2% de todos los sitios web: un salto de en un solo año. Cuando le pides a ChatGPT “extrae esta página”, su salida por defecto suele ser un script requests + BeautifulSoup. Ese script descarga el HTML en bruto, y en un sitio hecho con React o Angular el HTML bruto suele ser solo un <div id="root"> vacío. Los datos reales se cargan después de ejecutar JavaScript, algo que requests nunca hace.
ChatGPT sí puede generar código con Selenium o Playwright si se lo pides, pero esos scripts son más lentos (Playwright promedia frente a menos de un segundo en solicitudes estáticas) y a menudo requieren depuración por condiciones de espera, desencadenantes de scroll y selectores de elementos que ChatGPT adivina mal.
Protecciones anti-bot y CAPTCHAs
Cloudflare protege aproximadamente , y servicios como DataDome afirman en la detección de bots. Un simple requests.get() con un user-agent de Python es, dicho sin rodeos, una huella de bot de manual. Los scripts generados por ChatGPT no incluyen rotación de proxies, ni suplantación de huella TLS, ni manejo de cookies, ni resolución de CAPTCHA. En cualquier sitio comercial con una protección mínima, el script se bloquea en la primera solicitud.
Paginación y scraping a gran escala
El bucle de paginación por defecto de ChatGPT recorre ?page=N o hace clic en un botón .next. Los sitios reales usan paginación basada en cursores, scroll infinito con IntersectionObserver o llamadas GraphQL. ChatGPT no puede generar código correcto para eso salvo que le muestres la llamada exacta de red —y aun así, los bucles suelen ser frágiles. Tanto la como el señalan la paginación como el principal punto en el que sus ejemplos necesitan un segundo o tercer prompt.
Scraping continuo y programado
ChatGPT te da un script de una sola ejecución. No hay programador, ni detección de cambios, ni alertas. Si quieres “revisar los precios de la competencia cada mañana”, necesitas aprender cron, Airflow o Lambda, y nada de eso aparece en la respuesta inicial de ChatGPT. Para usuarios de negocio que necesitan datos recurrentes, esto es un callejón sin salida.
El problema de velocidad y coste
En sitios muy cargados de JS, los tiempos reales por página con Selenium o Playwright suelen situarse en 3–10 segundos por página en condiciones ideales, y en 40–60 segundos por página con reintentos y esperas anti-bot, una frustración en foros y tutoriales.
Si usas la API de ChatGPT para interpretar HTML (el enfoque de “pegar HTML” a escala), los costes por tokens suben rápido. Con los precios actuales de GPT-4o (~$2,50/M tokens de entrada, $10/M de salida), procesar 1.000 páginas de productos cuesta aproximadamente entre $95 y $105 solo en tokens. Con GPT-4o mini, serían unos $6,50 para el mismo volumen. Si sumas costes de proxies ($3–10/GB), mantenimiento del rastreador local y tiempo de desarrollo, el enfoque de “simplemente usa ChatGPT” empieza a parecer caro.
| Escala | Coste estimado en tokens con GPT-4o | Coste estimado en tokens con GPT-4o mini |
|---|---|---|
| 100 páginas | ~$9.55 | ~$0.65 |
| 1,000 páginas | ~$95.50 | ~$6.50 |
| 10,000 páginas | ~$955 | ~$65 |
Las estimaciones asumen ~50K tokens de entrada y ~2K tokens de salida por página. Los costes reales varían según el tamaño de la página y la complejidad de la salida.
Web scraping con ChatGPT vs. scrapers de IA sin código vs. código personalizado: marco de decisión
No todos los trabajos de scraping necesitan la misma herramienta. Este es el marco de decisión que he venido usando en Thunderbit después de probar los tres enfoques en proyectos reales.
| Escenario | ChatGPT + Python | Scraper de IA sin código (p. ej., Thunderbit) | Código personalizado + proxies |
|---|---|---|---|
| Páginas estáticas simples | ✅ Muy bien — rápido de generar | ✅ Funciona, puede ser más de lo necesario | ⚠️ Demasiado complejo |
| Contenido dinámico/renderizado con JS | ⚠️ Necesita Selenium/Playwright — el código suele romperse | ✅ Lo maneja con scraping en navegador/nube | ✅ Control total |
| Sitios con anti-bot / CAPTCHA | ❌ ChatGPT no puede resolver CAPTCHAs | ✅ La infraestructura en la nube resuelve muchos casos | ✅ Con rotación de proxies |
| Paginación (100+ páginas) | ⚠️ Bucles frágiles, requiere depuración | ✅ Paginación integrada | ✅ Robusto con ingeniería |
| Usuario no técnico | ❌ Requiere conocimientos de Python | ✅ 2 clics, sin código | ❌ Requiere programar |
| Scraping continuo/programado | ❌ Hay que relanzarlo manualmente | ✅ Función de scraper programado | ✅ Con cron/orquestación |
| Exportar a Sheets/Airtable/Notion | ⚠️ Hace falta código extra | ✅ Exportación nativa con un clic | ⚠️ Código de integración adicional |
En resumen: usa ChatGPT para scripts rápidos de una sola vez y para aprender. Usa una herramienta sin código como Thunderbit para scraping recurrente, de producción o sin necesidad de programar. Usa código personalizado + proxies para proyectos de ingeniería a escala empresarial donde necesitas control total.
La alternativa sin código: cómo Thunderbit resuelve tareas de scraping sin programar
Para quienes no programan —o para quienes ya han perdido suficientes tardes depurando scripts de ChatGPT— existe otro camino. ChatGPT genera el código. se salta ese paso.
Trabajo en el equipo de Thunderbit, así que lo digo con transparencia. Pero también creo sinceramente que esta es la vía más rápida para la mayoría de los usuarios de negocio. Así es como funciona.
AI Suggest Fields: detecta automáticamente la estructura de datos en cualquier página
Abre cualquier página web, haz clic en la y pulsa “AI Suggest Fields”. La IA de Thunderbit lee la página renderizada —incluido el contenido cargado por JS— y propone nombres de columnas y tipos de datos. Sin inspeccionar elementos, sin selectores CSS, sin ingeniería de prompts. Luego solo haz clic en “Scrape”.
Compáralo con el enfoque de ChatGPT: abrir DevTools, buscar selectores, escribir un prompt, revisar el código, instalar dependencias, ejecutar el script, comprobar el resultado e iterar. Thunderbit reduce todo eso a dos clics.
Scraping de subpáginas para enriquecer listados automáticamente
Después de extraer una página de listados, haz clic en “Scrape Subpages”. Thunderbit visita la página de detalle de cada fila y añade campos extra —como correo, teléfono o biografía— a tu tabla existente. Con ChatGPT, necesitarías un script separado, un bucle, manejo de errores para cada subpágina y una forma de combinar los datos. Thunderbit lo hace en un solo paso.
Exporta donde quieras: Google Sheets, Airtable, Notion, Excel
Thunderbit ofrece exportación gratuita con un clic a Google Sheets, Airtable, Notion y Excel —no solo CSV. Un script generado por ChatGPT normalmente escribe en un CSV o JSON local. Enviar datos a Sheets o Airtable requiere bibliotecas extra y código de autenticación.
Cloud scraping vs. scraping en navegador
Thunderbit te da dos modos. El cloud scraping se ejecuta en los servidores de Thunderbit, maneja unas 50 páginas por lote y es rápido para sitios públicos. El browser scraping usa tu sesión iniciada para páginas con acceso restringido o protegidas por login. Con ChatGPT, tendrías que configurar proxies, cookies y manejo de sesión en el código —y cada uno de esos puntos es una aventura distinta de depuración.
Por dentro, Thunderbit enruta a través de varios modelos de IA (incluidos ChatGPT, Gemini, Claude y otros) para leer visualmente las páginas y detectar qué extraer. Así que, en cierto sentido, Thunderbit ya usa ChatGPT —más otros tres modelos punteros— y además se encarga de la descarga, renderizado, anti-bot, paginación y exportación por ti.
Casos de uso reales: ventas, ecommerce e inmobiliaria
La mayoría de los tutoriales de scraping con ChatGPT usan “Books to Scrape” o algún sitio de prueba parecido. Esto es lo que parece el scraping real para negocio, con el enfoque de ChatGPT y el atajo de Thunderbit.
Extracción de leads de ventas desde directorios de empresas
Escenario: necesitas nombres, correos y teléfonos de un directorio de empresas para ventas outbound.
Enfoque con ChatGPT: usa la Plantilla 1 (página de listados) para extraer el directorio, y luego la Plantilla 2 (página de detalle) para visitar cada perfil y obtener la información de contacto. Te harán falta alternativas con regex para correos y teléfonos, una pausa prudente y una pasada de deduplicación. Calcula entre 30 y 60 minutos de configuración y depuración.
Enfoque con Thunderbit: abre el directorio, pulsa “AI Suggest Fields”, extrae el listado y después haz clic en “Scrape Subpages” para sacar los datos de contacto de cada perfil. Exporta a tu hoja lista para CRM. Tiempo total: unos 3 minutos. Los extractores integrados de de Thunderbit se encargan automáticamente del análisis.
Monitoreo de precios de la competencia en ecommerce
Escenario: quieres seguir semanalmente precios, disponibilidad y SKU de productos de la competencia.
Enfoque con ChatGPT: genera un scraper con la Plantilla 1, añade paginación con la Plantilla 4 y ejecútalo manualmente cada semana. Si la competencia cambia el diseño de la página, los selectores se rompen y toca empezar de nuevo.
Enfoque con Thunderbit: configura el scraper una vez, usa el cloud scraping programado de Thunderbit para ejecutarlo a diario o semanalmente, y exporta a Google Sheets. La IA relee la estructura de la página en cada ejecución, así que los cambios de diseño no rompen nada. Para más información sobre este flujo, consulta nuestra .
Recolección de datos de anuncios inmobiliarios
Escenario: necesitas precios de propiedades, direcciones, habitaciones/baños e información del agente desde un portal inmobiliario.
Enfoque con ChatGPT: la mayoría de los portales inmobiliarios (estilo Zillow) son SPAs en React con protecciones anti-bot agresivas. Un script requests + BeautifulSoup devuelve una página vacía. Una versión con Playwright se topa con rate limiting en minutos.
Enfoque con Thunderbit: el cloud scraping con detección automática de campos por IA maneja el renderizado JS y se adapta a los cambios de diseño. Los portales inmobiliarios se rediseñan con frecuencia: la IA de Thunderbit relee la página en cada ejecución, así que no tienes que actualizar selectores. Mira nuestra para ver el proceso completo.
Más allá de los scrapes puntuales: pipelines con la API de ChatGPT vs. Extract API de Thunderbit
Si estás integrando el scraping en un producto o pipeline, la pregunta cambia: ¿API de ChatGPT para analizar HTML, o una API de scraping diseñada para ello?
Usar la API de ChatGPT para interpretar HTML
El enfoque: usar un crawler local (requests, Playwright) para obtener el HTML y luego enviarlo a la API de OpenAI para extraer JSON estructurado. Es el truco de “pegar HTML” a escala.
Funciona. Pero los costes y el mantenimiento son reales. Con precios de GPT-4o, 1.000 páginas cuestan unos $95 en tokens. Tú gestionas el crawler, los proxies, la ingeniería de prompts y el esquema de salida. Cuando el sitio cambia, el prompt se rompe y toca reajustarlo.
Thunderbit Extract API: diseñada para datos web estructurados
La de Thunderbit ofrece un modelo distinto. Defines un esquema JSON, haces un POST con una URL y recibes datos estructurados. El renderizado JS y el manejo anti-bot vienen integrados. El procesamiento por lotes admite hasta 100 URLs por solicitud.
| Función | API de ChatGPT + código personalizado | Thunderbit Extract API |
|---|---|---|
| Salida estructurada | Esquema manual en el prompt | Definida mediante JSON Schema |
| Renderizado JS | Lo gestionas tú (Playwright, etc.) | Integrado (varios modos de renderizado) |
| Anti-bot / CAPTCHA | Lo gestionas tú (proxies, etc.) | Gestionado automáticamente |
| Procesamiento por lotes | Tú construyes el bucle | Endpoint por lotes (hasta 100 URLs) |
| Mantenimiento | Los prompts se rompen, el código envejece | Motor de IA gestionado |
Para equipos que quieren datos web estructurados como servicio sin mantener una infraestructura de scraping, la API de Thunderbit es el camino más corto a producción. Consulta los para ver el coste en créditos por extracción.
Consejos para obtener mejores resultados con el web scraping de ChatGPT
Algunas cosas que he aprendido a base de errores.
Sé específico en tus prompts. Incluye siempre: lenguaje de programación, librería, URL objetivo, selectores CSS, formato de salida e instrucciones para casos límite. Los prompts vagos generan código vago.
Pega fragmentos HTML, no solo URLs. ChatGPT no puede visitar URLs. El fragmento HTML es su única fuente de verdad sobre la estructura de la página. Pegar incluso 20–40 líneas de una sola tarjeta de datos mejora muchísimo la precisión.
Pídele a ChatGPT que revise y optimice. Después de generar un script, pregúntale: “Revisa este código en busca de errores, añade manejo de errores y optimízalo para rendimiento”. Sorprendentemente, detecta sus propios fallos bastante bien en una segunda pasada.
Prueba siempre primero con una muestra pequeña. Ejecuta el script en 1–2 páginas antes de escalar. Detectar un selector roto en la página 1 te evita descubrirlo después de 500 solicitudes fallidas.
Itera, no empieces de cero. Si el primer script está bien en un 80%, pega el resultado de vuelta y pide a ChatGPT que corrija el 20% restante. La conversación iterativa es donde ChatGPT más destaca.
Consideraciones éticas y legales para el web scraping con ChatGPT
La parte legal importa, así que aquí va la versión corta.
Según la jurisprudencia actual de EE. UU., extraer datos disponibles públicamente no es un delito federal informático. La sentencia lo estableció, y el fallo (enero de 2024) lo reforzó: un juez concluyó que extraer datos públicos, con sesión cerrada, de Facebook e Instagram no violaba los términos de servicio de Meta, porque un visitante sin cuenta no es un “usuario” sujeto a esos términos.
Dicho esto, extraer datos restringidos o autenticados, o violar los Términos de Servicio de un sitio después de aceptarlos, puede seguir implicando riesgo legal. Y cuando extraes datos personales (correos, teléfonos), se aplican las leyes de protección de datos de la UE y California (GDPR, CCPA) independientemente de dónde provengan los datos.
Comprueba siempre robots.txt y los Términos de Servicio antes de scrapear. Respeta los límites de frecuencia. Trata los datos personales con responsabilidad. Y utiliza herramientas con funciones de cumplimiento integradas: Thunderbit, por ejemplo, respeta robots.txt y ofrece prácticas responsables de datos desde el diseño. Para profundizar, consulta nuestra .
Cuándo usar ChatGPT para web scraping —y cuándo conviene otra cosa
ChatGPT es una herramienta realmente potente para web scraping: genera prototipos rápidos y te ayuda a entender cómo funciona el scraping por dentro. Para scripts únicos y rápidos en páginas estáticas simples, es difícil de superar.
Pero para scraping de calidad de producción, continuo o a gran escala —sobre todo si no eres desarrollador— una herramienta diseñada específicamente para ello como Thunderbit es más rápida, más fiable y no requiere mantenimiento. Y para proyectos de ingeniería a escala empresarial, el código personalizado con infraestructura de proxies te da control total.
Mi chuleta para decidir:
- Rápido, puntual, aprendizaje o prototipado: ChatGPT + Python
- Usuarios de negocio, sin código, scraping recurrente:
- Pipelines para desarrolladores, acceso estructurado por API:
- Escala empresarial, control total: código personalizado + proxies + orquestación
Si quieres probar la ruta sin código, Thunderbit ofrece un plan gratuito para experimentar en pequeño y ver los resultados por ti mismo. Y si quieres ver la herramienta en acción, nuestro tiene tutoriales para distintos casos de uso.
Preguntas frecuentes
¿ChatGPT puede hacer scraping de sitios web por sí solo?
No. ChatGPT genera código de scraping o interpreta el HTML que le proporcionas, pero no visita URLs, no descarga páginas ni ejecuta scripts. Incluso ChatGPT Atlas (el navegador integrado lanzado en octubre de 2025) es un asistente de navegación conversacional: puede resumir una página, pero no te entregará un CSV estructurado con 500 filas.
¿El web scraping con ChatGPT es gratis?
La versión gratuita de ChatGPT puede generar código de scraping sin coste. Pero ejecutar ese código requiere Python y librerías (gratis), y si usas la API de OpenAI para interpretar HTML a escala, pagarás costes por tokens: aproximadamente $6,50 por 1.000 páginas con GPT-4o mini, o unos $95 con GPT-4o. Los proxies y la infraestructura van aparte.
¿Cuál es la mejor librería de Python para scrapers generados por ChatGPT?
Para páginas HTML estáticas, BeautifulSoup con la librería requests es la opción más simple y rápida. Para páginas renderizadas con JavaScript, Playwright es la opción moderna: es más rápido que Selenium (unos 2,9 segundos de carga por página frente a 4,8 segundos) y tiene una API más limpia. Selenium sigue siendo útil sobre todo para proyectos heredados.
¿Puedo usar ChatGPT para extraer datos sin programar nada?
No directamente. ChatGPT genera código que aún tienes que ejecutar. Si quieres una opción realmente sin código, herramientas como te permiten extraer datos en dos clics: sin Python, sin terminal y sin depuración. Obtienes campos sugeridos por IA, exportación con un clic a Google Sheets o Airtable y manejo integrado de renderizado JS y protecciones anti-bot.
¿Es legal hacer web scraping con código generado por ChatGPT?
Extraer datos públicos y sin iniciar sesión suele ser legal según la jurisprudencia actual de EE. UU. (hiQ v. LinkedIn, Meta v. Bright Data). Sin embargo, extraer contenido restringido, violar los Términos de Servicio de un sitio o gestionar mal datos personales (correos, teléfonos) puede generar riesgos legales por contrato o por normativas de privacidad como GDPR y CCPA. Comprueba siempre robots.txt y los Términos de Servicio del sitio antes de scrapear.
Más información