Introducción: por qué automatizar la descarga de documentos
Muchas empresas, centros educativos, administraciones y plataformas privadas publican documentos importantes a través de aplicaciones web. Estos documentos pueden incluir cuadrantes laborales, horarios, nóminas, facturas, informes, comunicaciones internas o certificados. Aunque el acceso desde el navegador suele ser sencillo, comprobar manualmente si hay novedades puede convertirse en una tarea repetitiva.
El problema se complica cuando la plataforma no ofrece notificaciones, no dispone de una API pública o sustituye un documento existente por otro corregido sin avisar. En estas circunstancias, descargar un archivo una sola vez no garantiza que tengamos la versión más reciente. Tampoco resulta suficiente comparar únicamente el nombre del archivo, porque un PDF puede cambiar sin que cambie su denominación.
Una solución consiste en desarrollar un pequeño sistema de automatización documental que visite periódicamente la plataforma, identifique los documentos disponibles, los descargue y compare su contenido con las versiones previamente archivadas. Cuando aparece un documento nuevo o se modifica uno existente, el sistema genera una notificación. De esta forma, el usuario no necesita consultar constantemente el portal.
En esta guÃa utilizaremos como referencia una implementación real desarrollada sobre un servidor Debian con contenedores Docker. El proyecto original automatiza la consulta de documentos laborales publicados en un portal privado. Para que la explicación pueda reutilizarse, emplearemos nombres ficticios de servicios, directorios, archivos y portales. Las credenciales, direcciones internas y datos personales no forman parte del ejemplo.
La tecnologÃa principal para interactuar con el portal es Playwright, una herramienta de automatización de navegadores. Se utiliza desde Python para abrir la página, gestionar formularios de autenticación, mantener sesiones y descargar archivos. Docker permite ejecutar el proceso dentro de un entorno controlado, con dependencias aisladas y permisos especÃficos.
La detección de cambios se basa en el algoritmo criptográfico SHA-256. Cada PDF descargado obtiene una huella digital calculada a partir de sus bytes. Si dos documentos tienen el mismo nombre pero distinta huella, el sistema puede identificar que su contenido ha cambiado. En lugar de sobrescribir el documento anterior, conserva las diferentes versiones para permitir consultas históricas.
Para avisar al usuario se utiliza Telegram, mediante un bot configurado con un token privado. El envÃo se desacopla de la descarga a través de una cola de notificaciones. AsÃ, un fallo temporal de conexión con Telegram no deberÃa obligar a repetir la descarga ni provocar la pérdida inmediata del aviso pendiente. La arquitectura también permite incorporar correo electrónico en una fase posterior.
El sistema se ejecuta automáticamente con un temporizador systemd. Este mecanismo facilita programar comprobaciones, consultar registros y conocer el resultado de las ejecuciones. Para evitar procesos simultáneos se emplea un bloqueo, especialmente importante cuando una ejecución tarda más de lo previsto.
Finalmente, los documentos archivados pueden consultarse desde una interfaz web privada, diseñada para móviles. En el proyecto de referencia, el visor se publica únicamente dentro de una red Tailscale y utiliza HTTPS. De esta manera, los documentos no necesitan exponerse mediante una dirección pública accesible desde Internet.
La solución debe implementarse respetando las condiciones de uso del portal, la autorización de acceso y la privacidad de los documentos. No debe utilizarse para eludir controles de seguridad, acceder a cuentas ajenas ni realizar consultas abusivas. También es fundamental proteger los tokens, los archivos descargados y las copias de seguridad.
Esta guÃa distingue entre los componentes efectivamente probados en el proyecto de referencia y los ejemplos de código que permiten construir una solución equivalente. Los ejemplos requieren adaptar selectores, rutas y configuración a cada portal concreto. Además, se presenta una hoja de ruta para ampliar la aplicación con avisos por correo electrónico, supervisión de errores, mejoras del visor, copias de seguridad y pruebas automatizadas.
GuÃa completa: Leer la guÃa técnica completa en Jesanre Stack

0 Comentarios