(Spanish) El navegador ya no es solo para humanos
Por qué las páginas web públicas son ahora accesibles de formas que antes eran impensables
Hubo un tiempo en que "ver algo en una web" y "usar ese dato en código" eran dos mundos separados. El primero era para humanos. El segundo requería que la empresa dueña del sitio te diera una API, documentación, credenciales, y su bendición. Ese tiempo terminó.
Lo que descubrí explorando
Estaba analizando cómo obtener datos de una página web pública - sin registro, sin login, sin nada que el usuario promedio no pudiera ver con sus propios ojos. Información completamente pública.
El camino obvio parecía ser el scraping tradicional: descargar el HTML, parsear el contenido. Pero la web moderna no funciona así. La mayoría de sitios hoy son Single Page Applications - React, Angular, Vue - donde el HTML inicial está vacío y el contenido llega después, cargado dinámicamente por JavaScript.
<div id="root"></div>
Eso es todo lo que ves si intentas descargar el HTML directamente. Un div vacío esperando que JavaScript haga su trabajo.
La API interna que nadie documenta
Abrí las herramientas de desarrollo del browser, filtré por Fetch/XHR, y observé el tráfico. Lo que vi fue revelador: la app de React estaba consumiendo una API interna con endpoints bien estructurados, respuestas en JSON limpio, y toda la información organizada perfectamente. Datos que visualmente aparecen en pantalla para cualquier usuario, pero que internamente viajan como JSON estructurado, listo para ser procesado.
El problema: esa API tenía protección. Un WAF (Web Application Firewall) en Azure que analizaba cada request y bloqueaba cualquier cosa que no pareciera un browser legítimo. Tokens de sesión con expiración. Cookies generadas dinámicamente. Un ecosistema de seguridad diseñado para que solo browsers reales pudieran consumir esos datos.
Y tenía razón en bloquearte - si intentabas replicar el request manualmente, para cuando copiabas todos los headers necesarios, los tokens ya habían vencido.
El agente como humano digital
Aquí entra el cambio de paradigma. Un agente con control de browser - usando herramientas como Playwright - no simula un request. Abre un browser real. Chromium de verdad. Navega como lo haría un usuario. Las cookies se generan naturalmente. Los tokens están vigentes. El WAF ve exactamente lo que espera ver.
Pero a diferencia del humano, el agente puede hacer algo que el humano no puede: obtener y usar los datos en el mismo instante, dentro del mismo contexto de sesión.
El flujo es así:
- Agente abre browser
- Navega al sitio (tokens se generan automáticamente)
- Intercepta la respuesta de la API en tiempo real
- Extrae los datos estructurados
- Los guarda en base de datos
- Cierra el browser
Todo en segundos. Sin que ningún token tenga tiempo de vencer. Sin que ningún WAF detecte anomalías. Porque técnicamente no hay ninguna.
El problema del humano vs. el agente
Cuando un humano intenta hacer esto manualmente:
- Abre DevTools
- Filtra el tráfico de red
- Encuentra el request correcto
- Copia los headers
- Los pega en un cliente HTTP
- Ejecuta el request
Resultado: Token vencido. Request bloqueado.
El tiempo que tarda el humano en completar esos pasos es mayor que el tiempo de vida de los tokens de sesión. Es una carrera que el humano pierde por diseño.
Cuando el agente hace lo mismo, no hay pasos separados. La obtención y el uso son una sola operación continua. El agente no anota el token para usarlo después - lo usa mientras aún está caliente, en el mismo contexto donde nació.
¿Es esto vulnerar algo?
No. Y esa es la parte más interesante del análisis. Cualquier información que una página muestra públicamente, sin requerir autenticación, es información que el usuario tiene derecho a ver. El agente no hace nada que el usuario no pudiera hacer manualmente - simplemente lo hace más rápido y de forma programática.
La línea ética está clara:
- Información pública, uso personal o académico → completamente legítimo
- Automatización masiva que sature servidores → problemático
- Uso comercial de datos ajenos → requiere revisar términos
- Acceso a cuentas de terceros → ilegal
8 requests al día para leer información pública genera menos tráfico que un usuario humano visitando el sitio dos veces. No hay daño, no hay saturación, no hay violación.
Lo que esto significa para el desarrollo
Estamos en un momento donde la barrera entre "ver datos" y "usar datos en código" prácticamente desapareció para información pública.
Antes necesitabas:
- Una API oficial con documentación
- Credenciales y proceso de registro
- Límites de uso negociados
- Meses de espera para aprobación
Ahora necesitas:
- Un agente con Playwright
- Decirle qué quieres obtener
- Esperar segundos
Las implicancias para el desarrollo de software son enormes. Cualquier fuente de datos pública se convierte potencialmente en una fuente estructurada para tus aplicaciones. Sin fricción. Sin burocracia. Sin depender de que la empresa decida publicar una API.
La arquitectura que emerge
Lo interesante no es solo obtener los datos una vez - es cómo esto se integra en una arquitectura completa:
- Agente recopilador (cron programado) → navega fuentes públicas → extrae datos estructurados → guarda en base de datos local
- MCP Server → lee la base de datos → expone herramientas al agente de consulta
- Usuario → pregunta en lenguaje natural → el agente consulta las herramientas → respuesta instantánea desde datos frescos
El agente recopilador y el agente de consulta son independientes. Uno escribe, el otro lee. La base de datos es el punto de encuentro. Y el usuario final nunca sabe - ni necesita saber - de dónde vienen los datos.
Conclusión
Las páginas web públicas siempre fueron accesibles para humanos. Lo nuevo es que ahora son igualmente accesibles para agentes - y en algunos aspectos, el agente las maneja mejor que el humano. No porque rompa barreras de seguridad. Sino porque opera dentro de los mismos canales legítimos que usa cualquier browser, pero sin las limitaciones de tiempo y coordinación que tiene un humano copiando y pegando headers.
El browser ya no es solo para humanos. Y eso cambia bastante cómo pensamos el acceso a datos en el desarrollo moderno.
Este post es parte de una exploración práctica sobre agentes de IA. Las conclusiones son aplicables a cualquier fuente de información pública en la web.
Comments
No comments yet. Start the discussion.