3 puntos por kingtw 4 시간 전 | Aún no hay comentarios. | Compartir por WhatsApp

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). script eval 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.

Aún no hay comentarios.