Skip to content

peterjuse/unesr_scraper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Scraper de Recuperación de Contraseña UNESR 🎓

Este proyecto es una herramienta de automatización diseñada para facilitar el proceso de recuperación de contraseña en la plataforma SGA UNESR.

Debido a la infraestructura y posibles congestiones en la plataforma universitaria, el proceso de enviar el correo de recuperación puede fallar o indicar que se ha alcanzado el límite diario. Este script automatiza el intento de recuperación, reintentando automáticamente en caso de fallos o límites temporales hasta lograr el envío exitoso.

🚀 Características

  • Automatización con Selenium: Navega e interactúa como un usuario real.
  • Manejo de Errores Robustos: Detecta caídas de red, timeouts y alertas de la aplicación.
  • Bypass de Límites Temporales: Refresca y reintenta automáticamente si detecta notificaciones de "Límite diario alcanzado" (bajo la premisa de que a veces son falsos positivos o errores de conexión).
  • Compatibilidad Linux/Snap: Configurado específicamente para funcionar con Firefox instalado vía Snap en Ubuntu/Linux.

📋 Requisitos Previos

  • Python 3.8+
  • Firefox Browser instalado (/usr/bin/firefox)
  • Conexión a Internet estable

🛠️ Instalación

  1. Clona este repositorio:

    git clone https://github.com/tu-usuario/unesr_scraper.git
    cd unesr_scraper
  2. Crea un entorno virtual (opcional pero recomendado):

    python3 -m venv venv
    source venv/bin/activate
  3. Instala las dependencias:

    pip install -r requirements.txt

💻 Uso

Ejecuta el script principal pasando el correo electrónico que deseas recuperar.

python3 main.py --email estudiante@ejemplo.com --retries 50

Argumentos:

  • --email (Requerido): El correo electrónico asociado a la cuenta UNESR.
  • --retries (Opcional, default: 50): Número máximo de intentos antes de desistir por cada hilo.
  • --threads (Opcional, default: 1): Número de navegadores simultáneos a lanzar (Paralelismo).
  • --headless (Opcional): Ejecuta el navegador sin interfaz gráfica.

Ejemplo de ataque de recuperación masivo (3 hilos):

python3 main.py --email estudiante@ejemplo.com --threads 3 --headless

🏗️ Estructura del Proyecto

El proyecto ha sido refactorizado siguiendo principios de separación de responsabilidades:

  • src/config/: Configuraciones y constantes globales.
  • src/core/: Lógica central de infraestructura (Driver Factory).
  • src/services/: Lógica de negocio (Scraper y flujos de recuperación).
  • src/utils/: Utilidades transversales (Logging, etc).
  • main.py: Punto de entrada de la aplicación.

🔧 Solución de Problemas Comunes

Error: "Process unexpectedly closed with status 1" en Linux Este script crea automáticamente un directorio temporal en ~/tmp_firefox para solucionar conflictos de permisos con la versión Snap de Firefox. No es necesario realizar configuraciones adicionales.

📄 Licencia

Este proyecto está bajo la Licencia MIT. Úsalo bajo tu propia responsabilidad y con fines éticos.

About

Repo with a scraper to automatic recover the password for accounts that are in trouble to make the inscription of courses

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages