Este proyecto contiene scripts en Python que extraen información del menú del día actual desde la web de comedores de la Universidad de Granada utilizando Selenium.
Antes de ejecutar el proyecto, asegúrate de tener instalados los siguientes requisitos:
- Python 3.8 o superior
- Google Chrome (versión actualizada)
Instala las dependencias necesarias ejecutando:
pip install -r requirements.txtEl archivo requirements.txt debe contener:
selenium
webdriver-manager
beautifulsoup4
El script intenta configurar el locale a español (es_ES.UTF-8) para mostrar correctamente los días de la semana. Si estás en un sistema basado en Unix/Linux, asegúrate de que el locale esté instalado. Puedes verificarlo ejecutando:
locale -aSi no ves es_ES.UTF-8, instala el locale con:
sudo locale-gen es_ES.UTF-8
sudo update-localeEn Windows, la configuración regional depende del idioma del sistema operativo.
El proyecto incluye dos scripts principales:
app.py: Este script utiliza Selenium para scrappear la web de los comedores de la UGR y guarda el contenido de la página en un archivo llamadocontenido_pagina.txt.procesar_menu.py: Procesa el archivocontenido_pagina.txtpara extraer el menú del día actual.launch.py: Un script que automatiza la ejecución deapp.pyseguido deprocesar_menu.py.
-
Clona el repositorio en tu máquina local:
git clone <URL_DEL_REPOSITORIO> cd comedores
-
Ejecuta el script
launch.pypara realizar todo el proceso automáticamente:python launch.py
-
Revisa los archivos generados:
contenido_pagina.txt: Contiene el texto completo de la página scrapeada.contenido_dia.txt: Contiene el contenido específico del menú del día actual.menus_formateados.txt: Contiene el menú del día procesado y formateado.
El proyecto utiliza Selenium para interactuar con la página web. Para configurar Selenium:
-
Instalación de ChromeDriver:
- El script utiliza la librería
webdriver-manager, que descarga y configura automáticamente la versión correcta de ChromeDriver.
- El script utiliza la librería
-
Opciones del Navegador:
- El script ejecuta Google Chrome en modo headless (sin interfaz gráfica) por defecto.
- Si deseas ver el navegador en acción, edita el archivo
app.pyy comenta la línea:chrome_options.add_argument("--headless")
-
Ubicación del Driver:
- Si prefieres manejar manualmente el ChromeDriver, descárgalo desde aquí y colócalo en la carpeta del proyecto.
- Luego, ajusta el siguiente fragmento en
app.py:driver = webdriver.Chrome(service=Service('./chromedriver'))
contenido_pagina.txt: Texto completo de la página scrapeada.contenido_dia.txt: Menú del día extraído.menus_formateados.txt: Menú del día procesado y formateado para fácil lectura.app.log: Registro de las actividades y errores deapp.py.launch.log: Registro de las actividades y errores delaunch.py.
.
├── app.py # Script para scrappear la web de comedores UGR
├── procesar_menu.py # Script para procesar el menú extraído
├── launch.py # Script para ejecutar todo el proceso
├── contenido_pagina.txt # Salida: contenido scrapeado de la página
├── contenido_dia.txt # Salida: contenido del menú del día
├── menus_formateados.txt # Salida: menú procesado y formateado
├── app.log # Log de app.py
├── launch.log # Log de launch.py
├── requirements.txt # Dependencias del proyecto
└── README.md # Instrucciones del proyecto
-
Error de ChromeDriver:
- Asegúrate de que Google Chrome esté instalado y actualizado.
- Verifica que la versión de ChromeDriver coincida con tu versión de Chrome (esto se maneja automáticamente con
webdriver-manager).
-
Locale no configurado:
- Si obtienes errores relacionados con el locale, revisa la sección de configuración de locale.
-
Errores al scrappear:
- Asegúrate de que la página
https://scu.ugr.esesté accesible. - Revisa los archivos de log (
app.logylaunch.log) para obtener más detalles sobre el error.
- Asegúrate de que la página
Si deseas contribuir al proyecto:
- Haz un fork del repositorio.
- Crea una rama para tu feature/bugfix:
git checkout -b mi-feature
- Envía un pull request describiendo tus cambios.