🎯 La construcción: de un sitio público a un CSV estructurado
Leyenda: el recorrido completo del build: Firecrawl obtiene el contenido sin procesar del sitio, el agente organiza lo que interesa y guarda un CSV que se abre directamente en una hoja de cálculo.
¿Eres nuevo aquí? Scraping es el nombre técnico para «extraer información de una página web automáticamente». CSV es un archivo de tabla simple (Comma-Separated Values: valores separados por comas) que cualquier hoja de cálculo abre directamente. En este build le pedirás al agente que lea una página pública y entregue sus datos organizados en una tabla, sin que tengas que tocar ningún código de scraping.
Este es el módulo práctico de la Ruta 2: hasta aquí aprendiste qué es el protocolo MCP (2.1), cómo se organiza por dentro un servidor MCP (2.2), cómo instalar y autenticar uno (2.3) y cómo guardar instrucciones permanentes en una cheat sheet (2.4). Ahora todo eso se convierte en un resultado concreto: un archivo de datos que puedes abrir y mostrarle a alguien. Ese tipo de entrega tangible es lo que separa «aprendí sobre MCP» de «usé MCP para resolver un problema real».
Paso 1 — Servidor MCP conectado
Firecrawl ya está instalado y autenticado (eso fue el módulo 2.3); sin eso, ninguno de los comandos de este build funciona.
Paso 2 — Tú describes el pedido
Un párrafo en portugués: qué sitio, qué campos, qué nombre de archivo. El agente lo traduce en llamadas técnicas.
Paso 3 — El agente ejecuta y organiza
Elige entre map/crawl/extract, maneja los errores que surgen y arma la tabla.
Paso 4 — Tú revisas el CSV
Ábrelo en una hoja de cálculo, revisa si las columnas tienen sentido y si no faltan datos.
🔍 Ver por dentro
Entre tu solicitud y el CSV listo, lo que circula son llamadas del agente al servidor MCP de Firecrawl: cada una solicita una operación (scrape, map, crawl o extract) y recibe texto o datos estructurados en formato JSON (una forma de organizar datos en pares "campo: valor", parecida a una ficha). La clave de API (la contraseña que identifica tu cuenta de Firecrawl) se guarda localmente, nunca aparece en pantalla ni circula en la solicitud escrita: solo el agente y el servidor MCP la intercambian en segundo plano. Y sí: cada llamada tiene un pequeño costo dentro de tu plan de Firecrawl, así que las solicitudes concretas (pocas páginas, campos específicos) cuestan menos que «trae todo lo que encuentres».
📊 Las cuatro operaciones de Firecrawl, una al lado de la otra
¿Eres nuevo aquí? O Firecrawl es el servidor MCP que este build usa para leer sitios. Ofrece cuatro operaciones con propósitos muy distintos: saber cuál pedir (o dejar que la cheat sheet del módulo 2.4 guíe al agente) evita pedidos vagos y resultados vacíos.
| Operación | Qué hace | Cuándo usar | Ejemplo de solicitud |
|---|---|---|---|
| scrape | Trae el contenido de una solo una página. | Ya sabes la dirección exacta. | "Trae el texto de esta página" |
| map | Lista todas las direcciones (URLs) de un sitio, sin traer el contenido. | Quieres ver el mapa del sitio antes de decidir qué descargar. | "Lista todas las páginas de ese sitio" |
| crawl | Recorre varias páginas y trae el contenido de cada una. | Quieres el sitio completo (o una sección). | "Descarga el contenido de todo el blog" |
| extract | Trae solo los campos que pediste, ya organizados (precio, nombre, fecha...). | Quieres datos específicos, no el texto completo. | "Extrae el nombre y el precio de cada producto" |
💡 Consejo práctico
Para este build, vas a combinar map (encontrar las páginas de productos)
con extract (extraer el nombre y el precio de cada uno): es la combinación más común para convertirlo en CSV.
Un error común de quienes están empezando es pedir crawl cuando en realidad quería extract
— el resultado viene lleno de texto suelto, difícil de organizar en columnas. Si tu objetivo final es una
tabla (filas y columnas, como un CSV), empieza pensando en
extract; si el objetivo es "leer el contenido" sin una estructura fija, crawl o
scrape bastan.
✓ Solicitud bien descrita
- ✓"Extrae el nombre, el precio y la categoría de cada producto de la página de la tienda"
- ✓Indica el sitio, los campos y el nombre del archivo de salida
✗ Solicitud vaga
- ✗"Obtén los datos de ese sitio"
- ✗No indica qué campos ni en qué formato quieres el resultado
🗂️ Paso a paso: de la solicitud al CSV
Con el servidor MCP de Firecrawl ya iniciado (módulo 2.3), todo el build se resuelve con una solicitud bien descrita —el agente decide por su cuenta entre map/crawl/extract según lo que pediste.
Objetivo: generar un CSV con datos reales extraídos del sitio. Cómo verificar: abre produtos.csv en una hoja de cálculo (Excel, Google Sheets, LibreOffice) y confirma que cada fila tenga el nombre, el precio y la categoría completos, sin demasiadas celdas vacías.
Leyenda: nunca escribes las tres llamadas técnicas: solo describes el resultado que quieres. El agente es quien traduce la solicitud en map, extract y guardar el archivo.
Dos errores que bloquean este paso antes incluso de empezar: clave de API
inválida o vencida — Firecrawl responde con un error de autenticación y el agente ni siquiera puede
intentarlo; la solución es volver al módulo 2.3 y autenticarte de nuevo. Y dirección escrita
incorrectamente — un https:// que falte o que tenga un error de escritura en el dominio hace que la primera
llamada falle antes de que ocurra cualquier scraping. Revisa la dirección pegada antes de ejecutar.
🕳️ Cuando extract vuelve vacío
Leyenda: el agente no se rinde ante el primer «no encontré nada»: prueba un esquema más simple y luego recurre al scrape sin procesar para organizarlo manualmente. Solo informa de un fallo real si los dos intentos fracasan. Es la autocorrección de la Trilha 1, aplicada ahora al scraping.
A veces el extract devuelve una lista vacía: la página puede tener una estructura diferente de la
esperada, o los campos solicitados quizá no existan de esa forma. Aquí es exactamente donde la autocorrección de la
Trilha 1 aparece en la práctica: un buen agente no se rinde ante el primer "no se encontró nada"; simplifica la solicitud
(menos campos), vuelve a intentarlo y, si aun así no funciona, recurre al scrape en bruto y organiza los
datos manualmente a partir del texto completo.
🔍 Por dentro
Puedes pedirlo explícitamente: «si extract no devuelve nada, intenta simplificar los campos y, si sigue fallando, usa scrape y organiza tú mismo los datos a partir del texto». Eso se convierte en una instrucción permanente si lo guardas en la cheat sheet del módulo 2.4.
Una lista vacía no es la única forma en que puede fallar el build: otros dos errores comunes aparecen a mitad del proceso. Un sitio que bloquea el scraping devuelve una respuesta de error (a veces llamada "403" o "acceso denegado") en lugar de contenido. En ese caso, insistir no sirve: el sitio simplemente no permite ese tipo de acceso automatizado, y lo correcto es averiguar si ofrece una API pública propia o descartar esa fuente. Y un límite de uso excedido (la cuota mensual de tu plan de Firecrawl) hace que cada llamada nueva falle hasta el próximo ciclo; el agente generalmente lo avisa en la respuesta de error; si ocurre a mitad de un crawl grande, es señal de que habría valido la pena pedir menos páginas a la vez.
⚖️ Límites, costo y ética del scraping
¿Eres nuevo aquí? Cada llamada a Firecrawl consume una cuota (un límite de uso
mensual de tu plan) y algunos sitios prohíben el scraping en sus términos de uso o en un archivo llamado
robots.txt. Antes de ejecutar un crawl grande, comprueba si el sitio lo permite y evita solicitar un volumen mayor
del que realmente necesitas.
✓ Hacer
- ✓Pedir solo las páginas que realmente necesitas
- ✓Verificar si el sitio permite scraping antes de un crawl grande
✗ Evitar
- ✗Rastrear todo el sitio «solo para ver»
- ✗Ignorar avisos de bloqueo o de límite excedido
O robots.txt es un archivo sencillo que los sitios publican en la raíz de la dirección (algo como
exemplo.com/robots.txt) que indica qué pueden y qué no pueden consultar los robots automáticos;
Firecrawl suele respetar estas reglas por sí solo, pero conviene saber que existen, porque explican por qué
a veces una parte del sitio simplemente no devuelve nada. Si el dato que quieres tiene que ver con
información personal de terceros (nombres, correos electrónicos, teléfonos de personas
físicas), trátala con el mismo cuidado que cualquier otro dato sensible: pregúntate si realmente
necesitas ese campo antes de incluirlo en el CSV y nunca redistribuyas este tipo de datos sin necesidad.
💡 Consejo práctico
Si tienes por delante un crawl grande, empieza con un pedido pequeño (5-10 páginas) para validar que el formato del CSV quede como quieres. Solo después amplía al volumen total. Corregir un pedido pequeño es rápido; repetir un crawl enorme por un campo incorrecto, no.
🗓️ Repetir el build en otro sitio
Una vez que el servidor MCP y la cheat sheet están listos, repetir este build en otro sitio solo requiere cambiar la dirección y los campos deseados en la solicitud; el resto del flujo (map → extract → CSV, con fallback para scrape) ya está enseñado. Es el tipo de trabajo que realmente conviene automatizar, tema que Trilha 4 (Deploy) desarrollará más adelante.
¿Eres nuevo aquí? "Automatizar" aquí significa dejar que esa misma rutina se ejecute sola, sin que tengas que volver a copiar y pegar la solicitud; por ejemplo, generar el CSV actualizado todos los lunes por la mañana. Este módulo te ofrece la ejecución manual, bajo demanda; la Ruta 4 enseña a poner esa misma solicitud en un horario fijo, ejecutándose en un servidor, sin depender de que tu laptop esté encendida. Piensa en este módulo como el prototipo que demuestra que la solicitud funciona: solo después de validarla vale la pena invertir tiempo en automatizarla de verdad.
💡 Consejo práctico
Guarda la solicitud del paso 3 en un archivo de notas: la próxima vez, solo cambiarás la dirección del sitio y los campos, sin tener que volver a escribir todo desde cero.