Este proyecto resuelve la complejidad estructural de los informes oficiales de precios de alimentos del INDEC, donde los datos se publican en excels desorganizados con formatos inconsistentes, saltos de línea, contenido que cambia constantemente el nombre de sus archivos y renderizado dinámico con js que complica su obtencion automatizada.
Mediante un sistema de scraping avanzado con Playwright (para superar las barreras de JavaScript), combinado con un pipeline de limpieza automatizada en Python, convertimos estas fuentes inutilizables en datasets analizables con información actualizada todos los meses, y también publicamos información destacada y actualizada en Twitter.
Resultado: Información lista y actualizada para análisis en .CSV, permitiendo estudios de inflación, tendencias regionales y evolución histórica con la fuente oficial pero sin el trabajo manual. Ademas, información destacada del informe actualizado en mi Twitter Personal.
- Python 3.10 o superior
- Dependencias listadas en requirements.txt:
- Clonar el repositorio.
- Crear y activar entorno virtual.
- Instalar dependencias:
pip install -r requirements.txt
playwright install
El sistema se ejecuta automáticamente mediante GitHub Actions:
- Workflow Mensual: Actualiza la fecha del próximo informe (se ejecuta el día 1 de cada mes)
- Workflow Diario: Verifica diariamente si es la fecha programada para el scraping
Para ejecutar el scraping manualmente:
python -m src.main
-
Update Next Scraping Date
- Se ejecuta el primer día de cada mes
- Obtiene la próxima fecha de informe del INDEC
- Actualiza el archivo next_date.txt
-
Scrape on Target Date
- Verifica diariamente si es la fecha programada
- Ejecuta el scraping y publicacion solo cuando coincide con next_date.txt
- Guarda los datos actualizados en el repositorio
- Obtención dinámica de URL del archivo Excel
- Extracción de datos de la hoja "Nacional"
- Limpieza y transformación de datos:
- Identificación de encabezados
- Procesamiento de fechas y precios
- Conversión de formato ancho a largo
- Generación de IDs únicos por producto
- Validación de datos
- Guardado de archivos procesados en formato CSV.
- Actualización automática del repositorio.
- Publicacion en Twitter con información destacada.
- La ejecución automática usa UTC (ajustar zonas horarias si es necesario)
- Los datos se actualizan en la rama principal (main)
- El workflow puede ejecutarse manualmente desde GitHub Actions
- Historial de ejecuciones disponible en la pestaña "Actions"
Las contribuciones son bienvenidas. Por favor, abre un issue primero para discutir los cambios que te gustaría hacer.