Obtener datos de páginas web con agentes
En muchas páginas web modernas, una simple solicitud HTTP solo ve una cáscara vacía; el renderizado JS, los límites de frecuencia (rate limits) y robots.txt forman parte de la caja de herramientas.
El problema de las SPA con JS
Muchas páginas web modernas son aplicaciones de una sola página (single-page apps): la primera solicitud HTTP entrega solo un esqueleto HTML casi vacío, y el contenido real se carga después mediante JavaScript en el navegador. Una simple llamada curl o una herramienta de fetch básica entonces solo ve la cáscara vacía, no el texto que una persona ve en el navegador.
Herramientas de fetch y renderizado
Una herramienta de fetch como WebFetch obtiene la respuesta bruta de un servidor y, si es HTML, la convierte en Markdown; eso basta para las páginas clásicas renderizadas en el servidor. Para páginas con mucho JavaScript, en cambio, hace falta un servicio de renderizado o un navegador (headless) real que primero ejecute la página y después entregue el contenido ya renderizado.
Lo legal, brevemente
Un archivo robots.txt en el directorio raíz de un sitio web define qué zonas pueden rastrear las solicitudes automatizadas; respetarlo es un consenso básico en la web, aunque técnicamente no se pueda imponer. A eso se suman los términos de servicio (ToS) de cada sitio, que a veces restringen explícitamente el scraping.
Respetar los límites de frecuencia
Los servidores suelen responder con el estado 429 ("Too Many Requests") cuando reciben demasiadas solicitudes en poco tiempo. Un agente que ignora esto y sigue solicitando puede sobrecargar un sitio o acabar bloqueado; las pausas y un ritmo de solicitudes moderado forman parte de una recolección de datos limpia.
EJEMPLO
Prompt: "Consulta https://example.com/produkte y enumera todos los nombres de producto con su precio. Si la página se renderiza en el cliente y no hay contenido visible, dilo explícitamente en lugar de devolver una lista vacía."
QUIZ RÁPIDO
¿Por qué una simple solicitud HTTP (por ejemplo, curl) apenas entrega contenido en muchas páginas web modernas?
FUENTES
- Claude Code Doku: Tools Reference (WebFetch tool behavior) ↗ code.claude.com
- MDN: robots.txt (Glossar) ↗ developer.mozilla.org
- MDN: HTTP Status 429 Too Many Requests ↗ developer.mozilla.org