comunidadbóvedaScrapeGraphAI

ScrapeGraphAI: el patrón italiano de scraping, corriendo en tu Claude Code

Unos italianos hicieron ScrapeGraphAI hace dos años. 26 mil estrellas en GitHub, MIT, y el patrón es simple: baja la página, la limpia, le pide a un LLM que extraiga lo que quieres, lo guarda. Claude Code ya tiene las tres piezas nativas. Esta guía va en dos caminos: el nativo, sin instalar nada ni pagar API extra, para el 80% de los casos; y el Plan B con ScrapeGraphAI corriendo local cuando WebFetch no aguanta. Con prompts listos para copiar.

De un vistazo

01

El patrón del repo

02

Camino nativo

03

Camino con ScrapeGraphAI

04

Prompts listos + casos B2B

qué es · cómo funciona · camino A · 5 prompts nativos · cuándo no alcanza · camino B · 4 prompts SGAI · casos B2B · uso responsable · FAQ

Dos caminos para sacar datos de internet sin pagar herramientas, en el mismo Claude Code que ya tienes abierto

Primero te enseño qué hace ScrapeGraphAI por dentro: son cuatro pasos en cadena (fetch, limpia, extrae con LLM, exporta). Luego ves la tabla de equivalencias con Claude Code: las cuatro piezas ya están ahí. El Camino A te resuelve precios, leads de directorios B2B públicos, monitoreo de noticias y catálogos sin instalar nada. El Camino B es para cuando topas con un sitio JS-pesado o necesitas correr cientos de URLs: ahí Claude Code te instala ScrapeGraphAI, te configura Groq gratis como cerebro y orquesta los grafos. Cierre con 3 casos reales legítimos, dónde no usar esto (con LinkedIn como ejemplo) y FAQ rápida.

26 mil stars en GitHubOpen source MITHecho por italianosPrompts copia-pega incluidosCero costo en Camino A

01 contexto

Qué es ScrapeGraphAI y por qué nos importa este repo

ScrapeGraphAI es una librería de Python que combina grafos + LLMs para sacar datos estructurados de páginas web a partir de un prompt en lenguaje natural. La hicieron unos italianos —Marco Vinciguerra y Lorenzo Padoan— hace dos años. Hoy tiene 26 mil estrellas en GitHub, licencia MIT, y está escrita en Python 3.12+.

Lo importante no es la librería en sí, es el patrón que dejaron documentado: cómo se le pide a un modelo que extraiga datos de una página sin escribir selectores CSS ni reglas frágiles. Ese patrón es exactamente lo que Claude Code puede reproducir nativo, sin instalar el paquete. Eso es lo que vamos a ver en la siguiente sección.

¿Cuándo sí vale instalar la librería? Cuando el caso topa con cosas que Claude Code no resuelve out-of-the-box: sitios con render pesado de JavaScript, anti-bot tipo Cloudflare, scrape masivo en paralelo, o schemas de Pydantic estrictos para producción. Para eso está el Camino B más abajo.

Aviso de compatibilidad

ScrapeGraphAI no soporta Anthropic Claude como provider directo (su lista oficial es OpenAI, Groq, Google, Azure, Mistral, Ollama, entre otros). No hay problema: en el Camino A no la usas, y en el Camino B Claude Code orquesta la librería + un provider gratis como Groq. Lo aclaramos al detalle en el FAQ del final.

02 el descubrimiento

Cómo funciona ScrapeGraphAI por dentro (y por qué Claude Code ya lo puede hacer)

Toda la magia de ScrapeGraphAI son cuatro pasos en cadena. Si los entiendes, ya entendiste el patrón:

  1. 01

    Fetch

    Bajar el HTML de la página. ScrapeGraphAI usa Playwright (navegador real, soporta JS) o BeautifulSoup para páginas estáticas.

  2. 02

    Clean

    Convertir el HTML crudo a markdown legible con html2text, y partirlo en pedazos si es muy grande para el contexto del LLM.

  3. 03

    Extract

    Mandar el markdown + tu prompt al LLM. El modelo regresa los campos que pediste en JSON estructurado.

  4. 04

    Export

    Devolverte un dict de Python. Tú lo pasas a pandas y lo guardas como CSV o Excel.

Ahora la parte interesante: Claude Code ya trae las cuatro piezas nativas. No es teoría, ya están integradas como tools. Aquí la tabla de equivalencias:

Pieza de ScrapeGraphAIEquivalente nativo en Claude Code
Playwright o BeautifulSoup (fetch)WebFetch (tool nativa de Claude Code)
html2text (clean)WebFetch ya te devuelve markdown limpio
LLM provider externo (OpenAI, Groq, etc.)Claude mismo, dentro de Claude Code
pandas → CSV / ExcelBash + Python (csv, openpyxl) ejecutado por Claude
SearchGraph (busca + scrapea multi)WebSearch + WebFetch en loop

Conclusión: para el 80% de los casos (HTML estático, e-commerce, news, directorios públicos B2B), no necesitas instalar ScrapeGraphAI ni pagar otra API. Eso es el Camino A, ahora.

03 camino a

Modo nativo en 60 segundos: cero instalaciones, cero API keys

Este es el camino que usas el 80% del tiempo. Funciona contra páginas HTML normales, blogs, e-commerce simples, directorios públicos, sites de noticias, catálogos paginados. Si la página se ve bien al abrirla en tu navegador sin login, casi seguro WebFetch la maneja.

El único comando (entrar a la carpeta y prender Claude)

mkdir -p ~/scrape && cd ~/scrape && claude
  1. 01

    Crea una carpeta vacía donde quieras guardar los datos

    Algo como ~/scrape o Desktop/scrape. Aquí van a vivir los CSV que vayas generando. Mantenerlo separado evita ensuciar otros proyectos.

  2. 02

    Abre Claude Code adentro de esa carpeta

    En terminal entras a la carpeta y prendes Claude Code. La sesión hereda la carpeta como cwd, así los archivos que genere se quedan aquí.

  3. 03

    Pega cualquier prompt del Camino A

    Empieza con el 01 (single page → CSV). Claude usa WebFetch para bajar la página, lee, extrae los campos que pediste y te guarda el CSV. No hay paso de instalación.

Si Claude Code no está instalado en tu compu, primero pasa por la guía de instalación y luego regresas aquí.

04 manos a la obra

Prompts listos para copiar — modo nativo

Cero instalaciones. Solo Claude Code abierto en una carpeta vacía. Cada prompt tiene su botón Copiar, lo pegas tal cual y reemplazas los {placeholders} antes de mandar.

Si Claude tarda más de lo normal o te avisa que la página no carga bien, ese es el síntoma del que hablo en la siguiente sección — ahí ya empieza el territorio del Camino B.

Prompt 01

Sácame los datos de esta página en CSV

El más básico. Le pasas una URL y los campos que quieres. Claude usa WebFetch para bajar la página, lee lo que importa, te lo regresa estructurado y lo guarda en un CSV en la carpeta donde estás.

Usa WebFetch para bajar esta página: {pega aquí la URL}

De ahí, sácame estos campos:
- {campo 1, ej. nombre del producto}
- {campo 2, ej. precio actual}
- {campo 3, ej. disponibilidad}
- {agrega más si quieres}

Cuando termines:
1. Muéstrame los datos en una tabla en pantalla para que los revise.
2. Guárdalos en un archivo CSV llamado datos.csv en esta carpeta, con headers en español y separador coma.
3. Si una página no tiene alguno de los campos, mete una celda vacía, no inventes valores.

Prompt 02

Catálogo entero, no solo la primera página

Cuando el sitio tiene paginación (?page=2, ?page=3, o un botón Siguiente). Claude detecta el patrón, itera con WebFetch por todas las páginas, junta resultados y deduplica.

Quiero el catálogo completo de este sitio, no solo la primera página: {pega URL de la página 1}

Pasos:
1. Haz WebFetch a la URL inicial y muéstrame cómo se ve el patrón de paginación (puede ser ?page=N, /pagina/N, o un enlace "Siguiente").
2. Recorre todas las páginas hasta donde tope o hasta {N, ej. 20} máximo.
3. De cada producto, extrae: {nombre, precio, link al detalle, imagen si tiene}.
4. Deduplica por link del detalle (a veces el mismo producto aparece en dos páginas).
5. Guárdalo todo en catalogo.csv ordenado por precio ascendente.

Si una página tarda más de 10 segundos, brincátela y dime cuál falló al final para que la revise yo manual.

Prompt 03

Buscar + scrapear (SearchGraph nativo)

El equivalente nativo al SearchGraph de ScrapeGraphAI. Usa WebSearch para encontrar URLs candidatas, luego WebFetch en cada una, consolida en CSV. Sirve cuando no tienes las URLs específicas, solo el tema.

Busca y trae información sobre: {describe el tema, ej. "agencias de marketing digital en Guadalajara con más de 10 empleados"}

Pasos:
1. Usa WebSearch para encontrar las primeras {N, ej. 10} URLs candidatas.
2. Filtra las que claramente no aplican (foros, agregadores genéricos, anuncios pagados).
3. De cada URL que sobreviva, haz WebFetch y extrae: {nombre, sitio web, ciudad, una línea de qué hacen}.
4. Si una página no tiene la información clara, márcala como "incompleto" en lugar de inventar.
5. Consolida todo en resultados.csv y dime cuántas URLs encontraste, cuántas usaste y cuántas descartaste.

Prompt 04

Exporta a Excel con formato (no solo CSV)

Cuando necesitas el archivo .xlsx con headers en negrita, anchos de columna automáticos y filtros. Claude escribe un script con openpyxl (o pandas + openpyxl), lo corre, te deja el Excel listo para abrir.

Toma el CSV que acabamos de generar (o este archivo: {nombre.csv}) y conviértelo a Excel .xlsx con formato bonito:

1. Header row con fondo gris claro y texto en negrita.
2. Anchos de columna ajustados al contenido más largo de cada una.
3. Filtros automáticos prendidos en la fila de headers.
4. Si hay columna de precio, formato de número con dos decimales y separador de miles.
5. Si hay columna de URL, que sea clicable (hipervínculo de verdad).

Usa Python con openpyxl. Si no está instalado, instálalo primero con pip install openpyxl. Guarda el archivo como datos.xlsx en esta carpeta.

Prompt 05

Leads B2B desde directorios públicos

Crunchbase, G2, Product Hunt, cámaras de comercio sectoriales. Le pasas industria + región. Claude busca en los directorios públicos correctos, fetchea las páginas de empresa y arma un CSV de leads.

Necesito una lista de leads B2B de esta industria y región:
- Industria: {ej. SaaS de e-commerce}
- Región: {ej. México y Colombia}
- Tamaño objetivo: {ej. 10-200 empleados}

Pasos:
1. Identifica 2-3 directorios públicos donde estas empresas se listan (Crunchbase, G2, Product Hunt, AngelList, cámaras de comercio sectoriales, listados de Y Combinator, etc.). NO uses LinkedIn (bloquean bots y viola sus TOS).
2. Para cada directorio, usa WebSearch o WebFetch directo para encontrar las empresas que matchean.
3. De cada empresa, extrae lo que sea público en su perfil del directorio o en su sitio: nombre, sitio web, descripción de una línea, ciudad, tamaño (si aparece), correo de contacto general (solo si está publicado en su sitio).
4. Consolida en leads.csv ordenado por relevancia (qué tanto coincide con la industria).
5. Al final, dime de qué directorio sacaste cada lead para que pueda validar.

Reglas: solo info pública, sin scrapear datos personales individuales, sin tocar perfiles privados.

05 los límites

Cuándo WebFetch no aguanta y conviene saltar al Camino B

El Camino A cubre la gran mayoría de casos cotidianos, pero hay cuatro síntomas claros que te empujan a instalar ScrapeGraphAI. Si reconoces alguno mientras estás trabajando, es señal de que ese caso específico se resuelve mejor con la librería.

Síntoma 01

WebFetch te devuelve un HTML casi vacío

Pasa con sitios hechos en React, Vue, Next.js donde el contenido carga después con JavaScript. WebFetch ve solo el cascarón. Aquí ScrapeGraphAI con Playwright sí jala porque abre un navegador headless real y espera a que renderice.

Síntoma 02

El sitio te tira un challenge de Cloudflare o un 403

Anti-bot agresivo. ScrapeGraphAI tiene undetected-playwright como dep que ayuda en algunos casos. No es bala de plata, pero pasa más checks que un fetch simple.

Síntoma 03

Necesitas barrer cientos o miles de URLs en una sentada

Hacer cientos de WebFetch en Claude Code es lento y caro en contexto. ScrapeGraphAI tiene SmartScraperMultiGraph con concurrencia controlada y manejo de errores por URL.

Síntoma 04

Es producción y necesitas schemas estrictos

Si vas a meter los datos a una base o un pipeline, necesitas que cada fila cumpla un schema (campos obligatorios, tipos correctos). ScrapeGraphAI acepta un Pydantic BaseModel y valida el output del LLM contra él.

Si ninguno de los cuatro síntomas aparece en tu caso, quédate en el Camino A. No metas complejidad innecesaria.

06 camino b

Instalar ScrapeGraphAI con Claude Code de orquestador, sin tocar Python tú

Cuando WebFetch no aguanta, el Plan B es instalar ScrapeGraphAI localmente. Claude Code se encarga de todo: corre pip install, configura el entorno, escribe el script y lo ejecuta. Tú sigues solo copiando prompts.

Lo único que necesitas en mente — Claude Code corre esto por ti

pip install scrapegraphai && playwright install

Para que ScrapeGraphAI funcione, necesita un LLM provider como cerebro (no es Anthropic — ya lo dijimos). El más fácil y gratis es Groq: rápido, sin tarjeta, con modelos Llama de 70B que extraen igual de bien que GPT-4o-mini para scraping. Si ya tienes OpenAI o prefieres Ollama local, también funcionan, pero el setup más simple es con Groq.

  1. 01

    Saca tu API key gratis de Groq

    Entras a console.groq.com, te haces cuenta (no pide tarjeta), creas una API key, la copias. El free tier es suficiente para uso personal de scraping diario.

  2. 02

    Pega el prompt 01 del Camino B (instalación todo-en-uno)

    Claude Code instala scrapegraphai, instala los navegadores de Playwright, te pide pegar la API key en .env, corre un smoke test contra el sitio del repo para confirmar que jala.

  3. 03

    Cuando el smoke test pase, mueve al prompt que necesites

    Prompt 02 para sitios JS-pesados, 03 para batch de cientos de URLs, 04 para SearchGraph (busca + scrapea sin URLs previas). Claude escribe el script de Python, lo corre y te entrega los datos.

Si prefieres 100% local sin API key: sustituye Groq por Ollama. Instalas Ollama, descargas un modelo (ollama pull llama3.2) y en el config cambias el provider a ollama/llama3.2. Más fricción de setup, pero cero dependencia de servicios externos.

07 plan b en acción

Prompts listos — usando ScrapeGraphAI ya instalado

Estos prompts asumen que ya corriste el 01 (instalación) y el smoke test pasó. Si no, vete arriba a la sección del Camino B primero. Cada prompt produce un script de Python que Claude Code escribe y ejecuta por ti.

Prompt 01

Instálame ScrapeGraphAI y déjalo listo con Groq gratis

Todo-en-uno: pip install + playwright install + setup de la API key de Groq + smoke test. Cuando termina, ya puedes correr cualquiera de los siguientes prompts. Te explica dónde sacar la API key (es gratis, sin tarjeta).

Instálame ScrapeGraphAI en esta carpeta y déjalo listo para usar. Voy a usar Groq como provider porque es gratis.

Pasos en orden, párate y avísame entre cada uno si algo falla:

1. Verifica que tengo Python 3.12 o más (python3 --version). Si no, dime cómo instalarlo según mi sistema (Mac/Windows/Linux).

2. Crea un virtualenv en .venv y actívalo (source .venv/bin/activate en Mac/Linux).

3. Corre pip install scrapegraphai y luego playwright install (esto puede tardar varios minutos descargando Chromium).

4. Crea un archivo .env con GROQ_API_KEY=PEGA_AQUI_TU_KEY como placeholder. Dime exactamente que tengo que ir a https://console.groq.com/, crear cuenta gratis, sacar una key y pegarla en ese archivo. Espera mi confirmación de que ya lo hice.

5. Cuando confirme, crea smoke_test.py que haga un SmartScraperGraph contra https://scrapegraphai.com/ pidiendo "extrae la descripción de la empresa y los fundadores". Configura el modelo como groq/llama-3.3-70b-versatile.

6. Corre el smoke test (python smoke_test.py). Si jala, dime que estamos listos y muéstrame el output. Si falla, diagnostícalo y arréglalo antes de seguir.

7. Agrega .env, .venv/ y __pycache__/ a .gitignore.

Prompt 02

SmartScraperGraph contra un sitio JS-pesado

Cuando WebFetch te devuelve casi nada porque el sitio renderiza con React/Vue/Next y el contenido carga después. Aquí ScrapeGraphAI sí ayuda porque usa Playwright (navegador headless real). Claude escribe el script, lo corre, te trae los datos en CSV.

Este sitio carga con JavaScript y WebFetch me da solo el shell vacío: {pega URL}

Lo que necesito extraer: {describe los campos, ej. "todos los productos visibles con nombre, precio y stock"}

Pasos:
1. Crea un script scrape_js.py que use SmartScraperGraph de ScrapeGraphAI con estas opciones:
   - llm: groq/llama-3.3-70b-versatile (lee la key del .env que ya configuramos)
   - headless: true
   - verbose: true (para que vea qué está pasando si falla)
   - timeout: 120 segundos (sitios JS tardan más)

2. El prompt del grafo debe ser específico: "extrae cada producto con sus campos: nombre, precio en MXN si está, stock o disponibilidad, link del detalle".

3. Corre el script.

4. El output va a ser un dict. Pásalo a pandas y guárdalo en js_scrape.csv.

5. Si Playwright se traba o Cloudflare lo bloquea, dime exactamente qué error apareció y proponme alternativas (ej. proxy rotation, modo no-headless, esperar más tiempo).

Prompt 03

MultiGraph con 50+ URLs en paralelo

Lote masivo. Claude lee URLs desde un archivo urls.txt, construye SmartScraperMultiGraph, corre con paralelismo, junta resultados, exporta Excel. Útil cuando ya tienes la lista de páginas y necesitas barrerlas todas con el mismo prompt.

Tengo un archivo urls.txt con una URL por línea (más de 50). Quiero correr el mismo extract sobre todas y consolidar.

El extract que quiero: {describe los campos comunes, ej. "nombre del producto, precio, descripción corta"}

Pasos:
1. Lee urls.txt y dime cuántas URLs hay.

2. Crea scrape_multi.py usando SmartScraperMultiGraph con:
   - llm: groq/llama-3.3-70b-versatile
   - headless: true
   - rate limit conservador (no más de 2 requests por segundo, no quiero que me bloqueen ni que Groq me tire por exceso).

3. Si son más de 100 URLs, parte el batch en chunks de 50 y avísame antes de seguir al siguiente para que pueda monitorear costo de tokens y errores.

4. Por cada URL fallida, anótala en errores.txt en lugar de tumbar todo el run.

5. Cuando termine, consolida resultados en lote.xlsx con una columna "url_origen" para que sepa de dónde vino cada fila.

6. Al final dame un resumen: cuántas funcionaron, cuántas fallaron, tokens totales gastados (lo trae verbose), tiempo total.

Prompt 04

SearchGraph para 'encuentra y trae' temas amplios

Cuando no tienes URLs, solo el tema. SearchGraph busca en DuckDuckGo, scrapea los top N resultados y consolida. Funciona como una mini investigación automática.

Quiero hacer una investigación rápida sobre este tema y traerme datos consolidados, no resúmenes:

Tema: {describe la búsqueda, ej. "tiendas de café con tienda online que envían a CDMX, con precios de su grano de altura"}

Pasos:
1. Crea search_research.py usando SearchGraph de ScrapeGraphAI con:
   - llm: groq/llama-3.3-70b-versatile
   - max_results: 10 (Top 10 sitios que encuentre).

2. Prompt del grafo: "Lista cada tienda con: nombre, sitio web, ciudad, precio promedio de su grano de altura en MXN si está visible, si envía a CDMX, link directo al producto".

3. Corre el script y dame el dict crudo en pantalla.

4. Después conviértelo a search_results.csv con pandas. Limpia: si una tienda aparece duplicada en dos sitios distintos, deja la entrada más completa (la que tenga más campos llenos).

5. Al final muéstrame qué URLs consideró (search_graph.get_considered_urls()) para que sepa de dónde salió cada dato.

08 casos reales

3 casos B2B legítimos donde esto te ahorra horas (y dinero)

Aquí van casos que la gente realmente quiere resolver, todos hechos con info pública y sin violar TOS de ningún servicio. Cada uno con un mock del CSV que te quedaría.

Caso 01

Monitoreo de precios de competidores e-commerce

Cuándo lo usas: Quieres saber cómo se mueve tu competencia en precios y stock cada semana.

Cómo lo haces: Camino A (single page → CSV) corrido cada 7 días contra las URLs de productos clave. Después comparas semana contra semana con un script chico.

producto,precio_actual,precio_anterior,delta,stock
Tenis Modelo X,1299,1499,-200,Disponible
Bolsa Modelo Y,2499,2499,0,Agotado
Cinturón Z,799,899,-100,Disponible

Caso 02

Leads B2B desde directorios públicos sectoriales

Cuándo lo usas: Necesitas armar una lista de prospectos para outreach de tu agencia o tu SaaS. Tu segmento está claro: industria + región + tamaño.

Cómo lo haces: Camino A (prompt 05 de leads B2B) usando Crunchbase, G2, Product Hunt, AngelList, cámaras de comercio sectoriales o listas curadas tipo Y Combinator. Solo info pública del perfil.

empresa,sitio,ciudad,industria,contacto_publico
Acme Café,acmecafe.mx,Monterrey,Café especialidad,hola@acmecafe.mx
Beans Lab,beanslab.co,CDMX,Café especialidad,
North Beans,northbeans.mx,Tijuana,Café especialidad,info@northbeans.mx

Caso 03

Monitoreo de noticias o cambios en una página

Cuándo lo usas: Necesitas estar al día de una página específica (cambios en pricing de un proveedor, nuevos posts en un blog, anuncios regulatorios).

Cómo lo haces: Camino A (single page) corrido en una cron job diaria. Guardas snapshot diario en CSV, diffeas contra el del día anterior. Para sitios JS-pesados, brincas al Camino B (prompt 02).

fecha,titulo,resumen,url
2026-05-28,Nuevo plan Pro,Lanzaron tier de $49/mes con 10k requests,/blog/nuevo-plan
2026-05-27,Cambio en API,Deprecaron endpoint v1 para julio,/blog/api-v1-deprecated

09 reglas del juego

Uso responsable, dónde NO usar esto, y cuándo conviene pagar

Scrapear datos públicos es una herramienta legítima, pero como toda herramienta tiene zonas grises. Lee esto antes de soltar el primer prompt en producción.

  • Respeta robots.txt y las reglas del sitio

    ScrapeGraphAI no lo checa por default y WebFetch tampoco. La responsabilidad es tuya: si /robots.txt prohíbe el path, no lo scrapees. Tampoco compartas datos personales de terceros sin consentimiento.

  • Rate limit razonable

    No mandes 100 requests por segundo a una página. Espacia mínimo 1-2 segundos entre fetch. Si ves 429 o 503, párate. Los prompts del Camino B ya traen esto built-in; en el Camino A pídele a Claude que respete el ritmo.

  • Copyright y reuso del contenido

    Scrapear datos públicos para análisis interno o lead generation suele estar bien. Republicar contenido scrapeado (textos, imágenes, descripciones de productos) es otra cosa y puede meterte en problemas legales. Cuando dudes, no lo hagas.

  • Sitios donde no uses esto

    LinkedIn es el ejemplo clásico: violas sus Terms of Service, bloquean bots agresivamente con detección, y han ganado juicios contra scrapers. Lo mismo aplica a Facebook, Instagram, Twitter cuando piden auth para ver. Usa sus APIs oficiales o paga directorios B2B que tengan los datos licenciados.

¿Y si necesito correrlo en la nube, no en mi compu? ScrapeGraphAI tiene un servicio hosted con tiers de pago para producción seria (créditos mensuales, sin mantener Python tú). Cuando vas más allá del uso personal, ese path es razonable. Los precios reales los consultas en su sitio, no inventamos números aquí.

10 dudas frecuentes

FAQ — las preguntas que siempre llegan

¿Necesito una API key para empezar?

En el Camino A no. Claude Code y WebFetch te bastan. En el Camino B sí: necesitas una API key de Groq (gratis, sin tarjeta) o de OpenAI (paid) o tener Ollama corriendo local. La key se guarda en un archivo .env en tu carpeta de trabajo.

¿Por qué Anthropic / Claude no está en la lista oficial de providers de ScrapeGraphAI?

Es decisión de ellos como mantenedores del proyecto open source. Sus providers oficiales son OpenAI, Groq, Google, Azure, Mistral, MiniMax, Ollama, entre otros. No te afecta para nada: si vas por el Camino A, Claude es el cerebro porque estás dentro de Claude Code; si vas por el Camino B, ScrapeGraphAI usa Groq u otro provider como cerebro mientras Claude Code orquesta todo lo demás.

¿Esto es legal?

Sí, en general, si scrapeas datos públicos respetando robots.txt, sin sobrecargar el servidor, y sin republicar contenido protegido por copyright. Las zonas grises son redes sociales con auth (LinkedIn, Facebook), datos personales sin consentimiento, y sitios que prohíben explícitamente el scraping en sus TOS. En esos casos, busca una API oficial o un proveedor de datos licenciado.

¿Cómo automatizo esto para que corra solo cada día?

Dos opciones. Camino A: usa /schedule de Claude Code (mira la guía de schedule en la bóveda) para correr tu prompt en la nube cada día. Camino B: una vez que tengas el script de Python funcionando, lo metes a una cron job en tu compu o en un servidor (cron, launchd en Mac, Task Scheduler en Windows).

¿Cómo paso el CSV a un Excel real con formato bonito?

El prompt 04 del Camino A lo hace por ti (openpyxl con headers en negrita, anchos automáticos, filtros, hipervínculos clicables). Si solo quieres abrirlo sin formato, Numbers en Mac, LibreOffice o Google Sheets abren CSV directo y lo conviertes a xlsx con un click.

¿Cuánto cuesta correr el Camino B con Groq?

Gratis para uso personal típico. El free tier de Groq es muy generoso (cientos de miles de tokens por día). Si rebasas el rate limit, ya tendrías que ir a su tier de pago, pero para 99% de los casos de scraping personal o de equipo chico, el free tier alcanza.

Guía de la comunidad

Esta entrada va a fondo en ScrapeGraphAI porque el patrón que construyeron los italianos (fetch → limpia → extrae con LLM → exporta) es lo que más cambia la cuenta de scraping de cualquiera, y resulta que Claude Code ya trae las cuatro piezas nativas. La guía vive en la bóveda de tododeia. Si algo cambia en el repo o en la doc oficial, ahí está la fuente de verdad.

¿Por dónde empezar hoy?

Abre una carpeta nueva, prende Claude Code ahí y copia el prompt 01 del Camino A. En menos de un minuto ya tienes tu primer CSV de datos extraídos, sin instalar nada ni pagar API. Si topas con un sitio JS-pesado o necesitas correr cientos de URLs, ahí te mueves al Camino B.