ArachneControl – sistema open source de recolección de datos donde el servidor controla remotamente el navegador
(github.com/TaewonyNet)Es un sistema de recolección self-hosted que obtiene datos usando la sesión real del navegador del usuario, pero donde qué se recopila y cómo se recopila lo publica dinámicamente el servidor en tiempo de ejecución. Sigue un patrón de Comando-Ejecución-Reporte (Command-Execute-Report) en el que el servidor controla remotamente al cliente (navegador).
Resuelve por diseño tres problemas que aparecen cada vez que se vuelve a crear un crawler: carga o bloqueo del backend objetivo, barreras de inicio de sesión y la necesidad de redistribuir el cliente cada vez que cambia la lógica de recolección.
- Zero-Footprint: no hace solicitudes directas al servidor objetivo; en su lugar recopila desde el navegador del usuario que ya inició sesión → puede acceder dentro de las barreras de login igual que una persona y evita carga o bloqueos del backend.
- Control dinámico desde el servidor: el bookmarklet se registra una sola vez y permanece inmutable. Las reglas de recolección (selectores, acciones y extracción) las publica el servidor como comandos tipados → cuando cambia la lógica, no hace falta redistribuir el cliente. Generación automática de tipos TS desde una única fuente Pydantic.
- Creación de recetas con clics: al hacer clic en elementos desde la WebUI, se generan selectores automáticamente y se guardan recetas de extracción a partir de secuencias de acciones (click·drag·scroll·swipe).
scripteval está prohibido (whitelist). - Carga sin pérdida: write-ahead (commit síncrono seguido de 202) + idempotencia + recuperación automática al reiniciar.
- Control por agentes MCP: expone pipelines en vivo como herramientas MCP (protecciones de host allowlist, rate-limit y op TTL). Sin embargo, evadir bots y el scraping masivo no son objetivos del proyecto.
- secure-by-default: autenticación de administración activada por defecto (token automático estilo Jupyter), límites de ejecución para eval de respuestas del servidor (
script) y beacons externos (beacon), y sin uso de fingerprinting. - Sin costo y portable: SQLite + cola en memoria + un solo FastAPI. Cero servicios externos de pago. Reproducible en cualquier SO con
uv. MIT.
Para recolectar en sitios públicos se necesita una URL pública debido a las restricciones de Private Network Access del navegador; para evitarlo, se puede levantar un túnel temporal de cloudflared con ENABLE_TUNNEL=1 (medición real: recolección exitosa en sitios de noticias reales).
Aún no hay comentarios.