Si estas aquí. sabes para qué sirve.
Antes de comenzar, asegúrate de tener instalados en tu equipo:
-
Python 3.10 o superior
- Descarga desde: https://www.python.org/downloads/
- Durante la instalación, marca la casilla "Add Python to PATH".
-
Google Chrome
- Descarga desde: https://www.google.com/chrome/
-
Descargar e instalar el proyecto
- Abre tu terminal (CMD, PowerShell o terminal de Linux/macOS).
- Navega hasta el directorio donde deseas clonar el proyecto.
- Ejecuta el siguiente comando:
git clone https://github.com/help-moo/Descarga-Paideia.git- Ingresa al directorio del proyecto:
cd Descarga-Paideia- Sigue las instrucciones de instalación o configuración indicadas en el repositorio.
Se recomienda utilizar un entorno virtual para evitar conflictos de dependencias.
| Windows | Linux / macOS |
|---|---|
| 1. Abrir la terminal (cmd o PowerShell). | 1. Abrir la terminal. |
| 2. Navegar a la carpeta del proyecto. | 2. Navegar a la carpeta del proyecto. |
3. Crear el entorno virtual: python -m venv venv |
3. Crear el entorno virtual: python3 -m venv venv |
4. Activar el entorno virtual: venv\Scripts\activate |
4. Activar el entorno virtual: source venv/bin/activate |
5. Instalar dependencias: pip install -r requirements.txt |
5. Instalar dependencias: pip3 install -r requirements.txt |
Antes de ejecutar main.py, abre el archivo config.py y completa lo siguiente:
USUARIX = ''
CONTRASEÑA = ''
DIRECTORIO_DESCARGAS = ''
CURSOS_A_DESCARGAR = "soc, lenguaje, 2021" # Ejemplo: Selecciona cursos con "soc", "lenguaje", o "2021" en el nombre
CURSOS_A_EXCLUIR = "teoría" # Ejemplo: Excluye cursos con "teoría" en el nombre- USUARIX: tu usuario de la plataforma Paideia.
- CONTRASEÑA: tu contraseña de Paideia.
- DIRECTORIO_DESCARGAS: (opcional) Si lo dejas vacío (
''), la carpeta de descarga será el mismo directorio donde se encuentramain.py.
⚠️ Importante: Por seguridad, los datos deUSUARIXyCONTRASEÑAse eliminarán automáticamente delconfig.pyal finalizar la ejecución del script.
-
CURSOS_A_DESCARGAR:- Lista de palabras clave separadas por comas para seleccionar los cursos que deseas descargar.
- El script buscará cursos cuyos nombres contengan alguna de estas palabras clave.
- Ejemplo:
CURSOS_A_DESCARGAR = "soc, lenguaje, 2021"
- Seleccionará cursos como:
"2021-1 PROCESOS SOCIALES CONTEMPORÁNEOS""2021-1 LENGUAJE Y SOCIEDAD"- Cualquier curso del año 2021.
- Seleccionará cursos como:
-
CURSOS_A_EXCLUIR:- Lista de palabras clave separadas por comas para excluir cursos que no deseas descargar.
- Si un curso coincide con alguna palabra clave, será excluido.
- Ejemplo:
CURSOS_A_EXCLUIR = "teoría"
- Excluirá cursos como
"2021-1 TEORÍA SOCIOLÓGICA".
- Excluirá cursos como
-
Cómo funcionan juntas:
- Primero, el script selecciona los cursos que coincidan con
CURSOS_A_DESCARGAR. - Luego, excluye los cursos que coincidan con
CURSOS_A_EXCLUIR.
- Primero, el script selecciona los cursos que coincidan con
- Las palabras clave no distinguen entre mayúsculas y minúsculas.
- Si
CURSOS_A_DESCARGARestá vacío, se descargarán todos los cursos disponibles. - Si
CURSOS_A_EXCLUIRestá vacío, no se excluirá ningún curso.
# Ejemplo completo:
CURSOS_A_DESCARGAR = "soc, lenguaje, 2021"
CURSOS_A_EXCLUIR = "teoría, matemáticas"- Este ejemplo seleccionará cursos que contengan
"soc","lenguaje", o"2021", pero excluirá aquellos que contengan"teoría"o"matemáticas".
💡 Consejo: Usa palabras clave específicas para evitar descargar cursos innecesarios.
-
r"2021-1 .*SOCIAL.*": Selecciona cursos del periodo2021-1que contienen "SOCIAL" en el nombre.- Ejemplo:
"2021-1 PROCESOS SOCIALES CONTEMPORÁNEOS (SOC726-0001)"
- Ejemplo:
-
r"2021-1 .*SOC689.*": Selecciona cursos del periodo2021-1con el códigoSOC689.- Ejemplo:
"2021-1 TEORÍA SOCIOLÓGICA (SOC689-0001)"
- Ejemplo:
-
r".*TEORÍA.*": Selecciona cualquier curso que contenga "TEORÍA" en el nombre, sin importar el periodo.- Ejemplo:
"2021-1 TEORÍA SOCIOLÓGICA (SOC689-0001)"
- Ejemplo:
-
r"2020-2 .*": Selecciona todos los cursos del periodo2020-2.- Ejemplo:
"2020-2 HISTORIA DEL ARTE (ART123-0001)"
- Ejemplo:
-
r".*SOC.*": Selecciona todos los cursos cuyo código contiene "SOC".- Ejemplo:
"2021-1 PROCESOS SOCIALES CONTEMPORÁNEOS (SOC726-0001)"
- Ejemplo:
-
r".*0001.*": Selecciona cursos con el código de sección0001.- Ejemplo:
"2021-1 TEORÍA SOCIOLÓGICA (SOC689-0001)"
- Ejemplo:
💡 Nota: Los patrones regex son sensibles a mayúsculas y minúsculas. Si necesitas que no lo sean, puedes usar el modificador
(?i)al inicio del patrón. Por ejemplo:r"(?i).*teoría.*".
Con el entorno virtual activo y config.py configurado, ejecuta el script con:
python main.pyEn Linux/macOS, si es necesario, usa python3 main.py.
ℹ️ Dato realista: Descargar los cursos (2013 y 2020) tomó aproximadamente una hora y 15 minutos -según un cronómetro
Todos los recursos se descargarán y organizarán con la siguiente estructura:
Descarga_cursos_historicos
│
├─ 2020-1 Nombre del curso (código-horario)
│ ├─ archivo_1.pdf
│ ├─ archivo_2.docx
│ └─ ...
│
├─ 2020-2 Nombre del curso (código-horario)
│ ├─ archivo_19.pdf
│ ├─ archivo_3.eaf
│ └─ ...
│
│─ ...
│
├─ 2013-1 Nombre del curso (código-horario)
│ └─ (vacío - algunos cursos no tienen archivos descargables)
│
└─ registro_descargas.xlsx
💡 Recuerda: El script descargará todos los recursos disponibles (PDFs, DOCX, PPTX,, etc.) de cada curso.
Dentro de la carpeta de descarga encontrarás un archivo llamado registro_descargas.xlsx, que:
-
Contiene una lista de todos los enlaces de información disponibles por curso.
-
Resalta aquellos elementos que NO pudieron descargarse automáticamente, como:
- Grabaciones de Zoom.
- Carpetas de Google Drive.
- Carpetas internas de Paideia.
- Enlaces a páginas web.
-
Funciona como un registro de control y una guía para que puedas completar esas descargas manualmente si lo deseas.
El código está comentado línea por línea para que puedas **modificarlo y adaptarlo.
👉 Si encuentras bugs, errores o cualquier problema durante la ejecución, o tienes sugerencias de mejora, no dudes en reportarlo.
Este proyecto fue desarrollado utilizando asistencia de GitHub Copilot y ChatGPT para la redacción, depuración y documentación. 🤖
- Problema: El script intenta crear carpetas o archivos en un directorio donde no tienes permisos de escritura.
- Solución: Asegúrate de que
DIRECTORIO_DESCARGASenconfig.pyapunte a un directorio donde tengas permisos de escritura, como tu carpeta de usuario.
- Problema: El script no puede iniciar el navegador debido a permisos insuficientes para ejecutar ChromeDriver.
- Solución: Asegúrate de que el archivo
chromedrivertenga permisos de ejecución:- En Linux/macOS:
chmod +x /ruta/a/chromedriver
- En Windows:
- Asegúrate de que
chromedriver.exeesté ubicado en un directorio accesible y no protegido por el sistema.
- Asegúrate de que
- En Linux/macOS:
- Problema: El sistema se suspende durante la ejecución del script, interrumpiendo el proceso.
- Solución: Configura tu sistema para evitar la suspensión mientras el script está en ejecución:
- En Windows: Cambia la configuración de energía en el Panel de Control.
- En macOS/Linux: Usa el comando
caffeinate:caffeinate -i python main.py