Web scraping para LLM: preparar la web para tus modelos
Alimentar un LLM con la web exige contenido limpio, estructurado y actualizado. Aquí tienes cómo pasar del HTML bruto a documentos listos para un modelo de lenguaje: obtención, limpieza, Markdown, estimación de tokens y pipeline RAG.
Por qué preparar la web para un LLM
Un modelo de lenguaje no « ve » una página web: ve el texto que le das. Si ese texto es HTML bruto lleno de menús, scripts y cookies, el modelo gasta tokens en ruido y responde peor.
Preparar la web para un LLM es convertir páginas en documentos limpios: contenido útil, estructura explícita y metadatos. Es el paso que condiciona la calidad de un RAG y de un corpus de entrenamiento.
- Contenido útil aislado del ruido
- Estructura explícita (títulos, listas, tablas)
- Documentos cortos y coherentes
El problema del HTML bruto
Una página HTML típica ahoga el contenido real entre la navegación, los pies de página, los avisos de cookies, la publicidad y los scripts de seguimiento. Ese marcado representa una parte importante del documento.
Dar ese HTML tal cual a un modelo equivale a pagar por ruido: cada etiqueta, atributo y script consume tokens sin aportar información útil. Por eso hay que limpiar antes de indexar.
Paso 1 — Obtener el contenido real
Muchos sitios renderizan su contenido en el cliente: una petición HTTP simple solo devuelve un esqueleto vacío. Hay que ejecutar un navegador headless (Playwright, Puppeteer) y esperar el renderizado para obtener el HTML real.
Los sitios protegidos añaden fingerprinting, CAPTCHA y límite de peticiones. Un motor « stealth » y un ritmo controlado permiten alcanzar el contenido sin efectos secundarios en el sitio de origen.
Paso 2 — Convertir en Markdown limpio
Primero se eliminan los elementos parásitos (navegación, scripts, cookies, publicidad) para conservar solo el contenido principal, idealmente con una extracción tipo « Readability ». Después se convierte el HTML restante en Markdown.
Markdown conserva la estructura semántica (títulos, listas, tablas, enlaces) y elimina las etiquetas de presentación. Un Markdown limpio es legible por una persona y por una máquina.
- Un solo título de nivel 1 por documento
- Tablas y bloques de código bien delimitados
- Enlaces e imágenes con URL absolutas
Estimar la reducción de tokens
Los tokens se cuentan sobre el texto que se da al modelo. Como una parte importante de una página HTML es marcado y ruido, sustituir el HTML por un Markdown limpio reduce mecánicamente el número de tokens para el mismo contenido útil.
El orden de magnitud varía mucho según la página: una página cargada de navegación, scripts y publicidad se reduce mucho más que una ya minimalista. La idea común de una reducción de ~×10 corresponde a esas páginas cargadas — pero debe medirse, no suponerse.
- Método: contar los tokens del HTML bruto y luego los del Markdown limpio
- Medir en TUS páginas: el ratio depende del ruido, no de un número universal
- Comparar a igualdad de contenido útil (misma página, mismo alcance)
Extraer un JSON estructurado cuando necesitas campos
Markdown sirve para la lectura y el RAG, pero a veces buscas campos precisos (precio, fecha, autor). El texto libre no basta entonces: necesitas datos estructurados.
Describe el esquema esperado y obtén un JSON conforme, que validas en el código (Pydantic, Zod, JSON Schema). Así combinas un documento Markdown legible con campos tipados para la automatización.
Construir un pipeline RAG fiable
Un pipeline RAG fiable se basa en documentos limpios, una fragmentación controlada y una trazabilidad fuente → segmento. El Markdown por página facilita esa fragmentación y la cita de fuentes.
ScraperFlow entrega un artefacto por página y conserva el árbol de URL: mantienes el vínculo entre cada segmento y su origen, imprescindible para verificar una respuesta o citar la fuente.
Preguntas frecuentes
¿Se puede alimentar un LLM con contenido scrapeado?
Sí, siempre que prepares el contenido: obtén el HTML real, elimina el ruido y convierte a Markdown o JSON. Dar HTML bruto degrada la calidad y desperdicia tokens. Comprueba también el marco legal (robots.txt, RGPD) de cada fuente.
¿Qué formato elegir: HTML, Markdown o JSON?
Markdown para la lectura y el RAG (estructura conservada, ruido eliminado); JSON cuando necesitas campos precisos y tipados; HTML bruto solo si debes tratar la maquetación. En la práctica se combinan Markdown para el texto y JSON para los campos.
¿Cómo estimo el número de tokens de una página?
Se cuentan los tokens del texto que se da al modelo. Convierte la página a Markdown limpio y cuenta los tokens de ese Markdown con el tokenizer del modelo objetivo. Compara con el recuento sobre el HTML bruto para obtener la reducción real en tus páginas.
¿Es legal hacer scraping para un LLM?
El scraping no está prohibido en sí, pero se enmarca: respeta el robots.txt y las condiciones de uso, minimiza los datos personales (RGPD) y mantén una finalidad legítima. Para uso comercial o entrenamiento, revisa los derechos sobre los contenidos obtenidos.