Automatización y navegador Guía paso a paso

Extraer datos de webs con Claude Code y ScrapeGraphAI

Aprende a convertir páginas web públicas en tablas limpias con dos enfoques: primero solo con las herramientas que ya trae Claude Code, sin instalar nada, y después con ScrapeGraphAI, una librería de Python de código abierto para webs que cargan con JavaScript, lotes grandes de URLs y esquemas estrictos.

Nivel
Intermedio
Qué necesitas
Claude Code instalado; para la segunda parte, Python 3.12 o superior y una clave de API de un proveedor de modelos (o Ollama en local).
Cuánto lleva
10 minutos el modo nativo; unos 30 minutos instalar y probar ScrapeGraphAI

Herramientas que usa esta guía

01 Qué es el scraping con modelos de lenguaje

El scraping tradicional depende de selectores CSS: le dices al programa «el precio está en el elemento con la clase price». Funciona hasta que la web cambia el diseño y todo se rompe. Con un modelo de lenguaje el enfoque es distinto: le das el contenido de la página y le describes en lenguaje natural qué datos quieres. El modelo los localiza aunque cambie el HTML.

ScrapeGraphAI es una librería de Python con licencia MIT que organiza ese proceso en grafos: descargar la página, limpiarla y trocearla, pedir al modelo que extraiga los campos y devolver un diccionario. Lo interesante es que Claude Code ya hace buena parte de eso por sí mismo, así que en muchos casos no necesitas instalar nada.

Paso En ScrapeGraphAI En Claude Code sin instalar nada
Descargar la página Playwright (navegador real) o peticiones simples Herramienta WebFetch
Limpiar el contenido Convierte el HTML a texto y lo trocea WebFetch ya entrega el contenido procesado
Extraer campos El modelo que configures (OpenAI, Groq, Gemini, Ollama…) El propio Claude
Buscar fuentes SearchGraph sobre un buscador Herramienta WebSearch
Exportar Diccionario de Python Claude escribe y ejecuta el script que guarda CSV o Excel

02 Modo nativo: datos a CSV sin instalar nada

  1. 1

    Crea una carpeta de trabajo

    Una carpeta solo para estos datos, por ejemplo extracciones en tu escritorio. Así los archivos generados no se mezclan con otros proyectos.

  2. 2

    Abre Claude Code dentro

    Desde el terminal, entra en la carpeta y ejecuta claude. Todo lo que guarde quedará ahí.

  3. 3

    Describe la página y los campos

    Pega la URL, enumera las columnas que quieres y el formato de salida. Pide siempre que deje celdas vacías antes que inventar datos.

  4. 4

    Revisa una muestra

    Compara cinco filas con la web real antes de dar el archivo por bueno.

bash · Preparar la carpeta y abrir Claude Code
mkdir -p ~/extracciones && cd ~/extracciones
claude
Prompt · Página o catálogo paginado a CSV
Usa WebFetch para leer [URL]. Necesito una fila por producto con estas columnas: nombre, precio, moneda, disponibilidad y enlace a la ficha.

Si la página tiene paginación, averigua el patrón y recorre como máximo [N] páginas, con una pausa de un par de segundos entre peticiones. Elimina duplicados por enlace.

Guarda el resultado en productos.csv (UTF-8, separador coma) y enséñame las diez primeras filas. Si un dato no aparece, deja la celda vacía y no lo deduzcas. Al final dime qué páginas no pudiste leer.
Prompt · Buscar fuentes y extraer (sin URLs previas)
Quiero una tabla de [tipo de empresa] en [zona]. Usa WebSearch para encontrar fuentes públicas (webs corporativas, directorios sectoriales, asociaciones), descarta foros y anuncios y lee con WebFetch las que parezcan fiables.

Por cada empresa: nombre, web, localidad, actividad en una frase y la fuente de donde sale el dato. Solo información publicada por la propia empresa o el directorio; nada de datos personales de empleados.

Guárdalo en empresas.csv y después crea empresas.xlsx con cabecera en negrita, filtros activados, columnas ajustadas y enlaces clicables usando openpyxl.

03 Cuándo el modo nativo se queda corto

01

La página llega vacía

Webs hechas con React, Vue o similares que pintan el contenido con JavaScript. Hace falta un navegador real que espere a que cargue.

02

Cientos de URLs

Recorrer muchas páginas una a una dentro de la conversación es lento y consume mucho contexto. Mejor un script que corra solo.

03

Datos para producción

Si los datos alimentan una base de datos, cada fila debe cumplir un esquema estricto con tipos y campos obligatorios.

04

Tareas programadas

Un script de Python se programa con cron o el programador de tareas del sistema sin depender de una sesión abierta.

04 Instalar ScrapeGraphAI

La librería necesita Python 3.12 o superior y un modelo de lenguaje que hará la extracción. Admite proveedores como OpenAI, Groq, Gemini o Azure mediante clave de API, y también modelos locales con Ollama si no quieres enviar el contenido a terceros. El comando playwright install descarga los navegadores que usa para webs con JavaScript.

bash · Entorno virtual e instalación
python3 -m venv .venv
source .venv/bin/activate
pip install scrapegraphai
playwright install
python · extraer.py: primer grafo con un modelo local de Ollama
import json
from scrapegraphai.graphs import SmartScraperGraph

config = {
    "llm": {
        "model": "ollama/llama3.2",
        "model_tokens": 8192,
        "format": "json",
    },
    "verbose": True,
    "headless": True,
}

grafo = SmartScraperGraph(
    prompt="Lista los servicios que ofrece la empresa y sus datos de contacto públicos",
    source="https://www.ejemplo.es/",
    config=config,
)

print(json.dumps(grafo.run(), indent=2, ensure_ascii=False))

05 Los grafos que más vas a usar

Grafo Para qué sirve
SmartScraperGraph Una página y una instrucción: el caso más habitual
SmartScraperMultiGraph La misma instrucción sobre una lista de URLs, con llamadas al modelo en paralelo
SearchGraph Busca un tema, lee los primeros resultados y consolida los datos
ScriptCreatorGraph Genera un script de Python de scraping para una página concreta
Prompt · Que Claude Code monte y ejecute el lote
En esta carpeta tengo ScrapeGraphAI instalado en .venv y la clave del modelo en .env. Lee urls.txt (una URL por línea).

Escribe lote.py con SmartScraperMultiGraph para extraer de cada página: [campos]. Procesa las URLs en bloques de 25, registra las que fallen en errores.txt sin detener el resto y añade a cada fila la columna url_origen.

Valida cada fila con un modelo de Pydantic (campos obligatorios y tipos) y descarta las que no cumplan anotando el motivo. Guarda el resultado en lote.xlsx. Ejecuta primero con las cinco primeras URLs, enséñame el resultado y espera mi visto bueno antes del lote completo.

06 Casos de uso para negocio

01

Vigilancia de precios

Una extracción semanal de las fichas clave de la competencia y una comparación con la semana anterior para detectar bajadas y roturas de stock.

02

Listados de prospección

Empresas de un sector y provincia a partir de directorios y asociaciones públicas, con la fuente de cada dato para poder verificarlo.

03

Cambios en páginas

Tarifas de proveedores, convocatorias o boletines: guardas una copia diaria y comparas con la anterior.

04

Migraciones de contenido

Pasar el catálogo o el blog de una web antigua a una tabla estructurada antes de rehacerla.

07 Uso responsable y legal

  • ✓Consulta robots.txt y las condiciones de uso del sitio antes de extraer nada.
  • ✓Limita el ritmo: unos segundos entre peticiones y detente si recibes errores 429 o 503.
  • ✓No extraigas datos personales sin base legal: en la UE se aplica el RGPD aunque el dato esté publicado.
  • ✓No republiques textos ni imágenes extraídos; usa los datos para análisis interno.
  • ✓Evita redes sociales y plataformas que exigen inicio de sesión; usa sus API oficiales.
  • ✓Guarda la fuente y la fecha de cada dato para poder justificar su origen.

Preguntas frecuentes

En el modo nativo no: Claude Code hace la descarga y la extracción. ScrapeGraphAI sí necesita un modelo, ya sea por API (OpenAI, Groq, Gemini…) o en local con Ollama, sin coste por uso.

Con las páginas públicas que se ven sin iniciar sesión, en la mayoría de casos. Las que cargan con JavaScript necesitan el navegador de Playwright, y las que tienen protección antibots pueden bloquear cualquier intento automatizado.

Extraer datos públicos para análisis suele ser aceptable si respetas las condiciones del sitio, no saturas el servidor y no tratas datos personales sin base legal. Republicar contenido protegido o saltarse inicios de sesión es otra cosa.

Cuando tengas el script de Python funcionando, prográmalo con cron en Linux o macOS o con el Programador de tareas de Windows. Guarda cada ejecución con la fecha en el nombre del archivo.

Los creadores ofrecen además una API gestionada de pago con renderizado y proxies incluidos. Esta guía se centra en la librería de código abierto, que ejecutas tú.

Sobre el autor

Equipo editorial de appyweb

Marketing, SEO y desarrollo con IA

Especialistas de appyweb en SEO, publicidad, desarrollo web y automatización con IA.

Sigue con estas guías

Guía paso a paso · Intermedio

Scrapling + Claude: extrae datos de webs para prospección y análisis de competencia

Scrapling es una librería de Python de código abierto con servidor MCP integrado: Claude la usa para descargar páginas, extraer datos con selectores y devolverte tablas limpias. Esta guía explica cómo instalarla, cómo pedir extracciones útiles para una agencia o un negocio (prospección B2B, precios de la competencia, auditoría de webs) y qué límites legales tienes en España.

Unos 15 minutos de instalación y 5 minutos por extracción. Leer la guía →
Guía paso a paso · Intermedio

Extraer datos de internet con Claude: Apify, APIs de scraping y Browser Harness

Claude no rastrea la web en masa por sí solo, pero puede dirigir herramientas que sí lo hacen. Esta guía explica cómo conectar Apify, una API de scraping de pago por uso y Browser Harness, cuándo usar cada una, cómo combinarlas para prospección y análisis de competencia, y qué límites legales tienes que respetar en España.

Unos 45 minutos para conectar las tres piezas y hacer la primera extracción Leer la guía →
Guía paso a paso · Intermedio

Prospección de clientes con Apify y Claude Code

Con el servidor MCP de Apify, Claude Code puede usar miles de extractores de datos ya hechos para encontrar negocios que encajan con tu cliente ideal. Verás cómo conectarlo, qué extractores sirven para prospección, un flujo de trabajo por fases con prompts propios y los límites legales que debes respetar en España.

10 minutos de conexión y una tarde para la primera lista Leer la guía →
Guía paso a paso · Principiante

MarkItDown de Microsoft: convierte PDF, Word y Excel a Markdown para Claude

MarkItDown es una utilidad libre de Microsoft que convierte documentos de oficina, PDF, páginas web y otros formatos en Markdown limpio. Pasarle a Claude ese texto en vez del archivo original suele ocupar menos contexto y facilita trabajar con lotes grandes. Aquí tienes la instalación, el uso desde Claude Code y sus límites reales.

Unos 15 minutos para instalarlo y convertir tu primer documento Leer la guía →
Guía paso a paso · Intermedio

Agent Browser: un navegador para que Claude Code navegue, pruebe y extraiga datos

Agent Browser es una herramienta de línea de comandos de Vercel Labs que da a Claude Code su propio navegador. En lugar de capturas de pantalla, le entrega una lista numerada de elementos de la página, así que navega rápido y con poco contexto. Ideal para probar tu web, revisar landings o automatizar paneles sin API.

Unos 15 minutos para instalarlo y hacer la primera prueba Leer la guía →

¿Quieres llevar la IA a tu empresa sin pelearte con todo esto?

Diseñamos e implantamos agentes, automatizaciones y asistentes con IA a medida de tu negocio.

Ver nuestros servicios de IA

Cuéntanos tu proyecto. Te respondemos en 48 h.

Auditoría gratuita de IA, campañas, web y SEO, con prioridades y cifras reales de tu negocio.

✓ Sin compromiso ✓ Respuesta en 48 h laborables ✓ Un consultor senior, no un bot
WA WhatsApp