Este script automatiza la descarga de facturas de electricidad desde la Oficina Virtual de la Cooperativa de Electricidad Bariloche (CEB) y extrae la información relevante para almacenarla en un archivo CSV y en una hoja de cálculo de Google Sheets.
- Tener instalado Python 3.
- Instalar las dependencias necesarias ejecutando:
pip install -r requirements.txt
- Configurar las credenciales en variables de entorno:
CEB_USERNAME: Correo electrónico asociado a la cuenta de la CEB.CEB_PASSWORD: Contraseña de la cuenta de la CEB.
-
Asegúrate de haber configurado las variables de entorno:
En sistemas tipo Unix (Linux/macOS):
export CEB_USERNAME="tu_email@example.com" export CEB_PASSWORD="tu_contraseña" export GOOGLE_SPREADSHEET=true # Opcional para Google Docs
En Windows (PowerShell):
$env:CEB_USERNAME="tu_email@example.com" $env:CEB_PASSWORD="tu_contraseña" $env:GOOGLE_SPREADHSEET="true" # Opcional para Google Docs
-
Ejecuta el script:
python main.py
- Inicia sesión en la Oficina Virtual de la CEB usando Selenium.
- Descarga todas las facturas disponibles en formato PDF, omitiendo aquellas que ya existen en la carpeta
downloads/. - Extrae la información relevante de cada factura, como:
- Consumo en kWh.
- Fecha de vencimiento.
- Cargo fijo y valor del kWh.
- Período de facturación.
- Guarda los datos en
output.csvy también los sube a Google Sheets (por defecto, a una hoja llamada "Sheet1" dentro del documento "Facturas CEB").
downloads/→ Carpeta donde se almacenan los PDFs descargados.outputs/→ Carpeta donde se guardan los archivos de texto extraídos.output.csv→ Archivo final con los datos extraídos de las facturas.
- Si las credenciales no están configuradas correctamente en las variables de entorno, el script arrojará un error y se detendrá.
- Se recomienda limpiar la carpeta
downloads/antes de ejecutar el script si deseas forzar la descarga de todos los archivos nuevamente.
Este script utiliza:
seleniumpara automatizar la navegación web.webdriver-managerpara gestionar el controlador de Chrome.PyMuPDF(fitz) para extraer texto de los archivos PDF.gspreadygoogle-authpara interactuar con Google Sheets.
- Ve a Google Cloud Console.
- Crea un nuevo proyecto o selecciona uno existente.
- Habilita la Google Sheets API:
- Ve a APIs y servicios > Biblioteca.
- Busca Google Sheets API y haz clic en "Habilitar".
- Crea una cuenta de servicio:
- Ve a APIs y servicios > Credenciales.
- Haz clic en Crear credencial > Cuenta de servicio.
- Asigna un nombre y descripción.
- En el paso de "permisos", puedes omitirlo.
- Una vez creada, haz clic en la cuenta de servicio y luego en Claves > Agregar clave > JSON.
- Se descargará un archivo
.jsonque deberás mover a una ubicación segura.
- Comparte el Google Spreadsheet con el correo de la cuenta de servicio (ej.
nombre-cuenta@nombre-proyecto.iam.gserviceaccount.com) con permisos de Editor. - Descargar credenciales y colocarlar en archivo
credentials.json.
- Buildear imagen:
docker build --platform linux/amd64 -t ceb-facturas:local . - Ejecutar con:
docker run --platform linux/amd64 --rm \ -v "$(pwd)/downloads:/app/downloads" \ -v "$(pwd)/outputs:/app/outputs" \ -v "$(pwd)/credentials.json:/app/credentials.json" \ -e CEB_USERNAME='<....MAIL....>' \ -e CEB_PASSWORD='<....PASSWORD....>' \ -e GOOGLE_SPREADSHEET=true \ ceb-facturas:local
- CSV:
Archivo,Periodo,Emitida el,Fecha Límite de Pago,Vencimiento,Consumo,Consumo Último Año,Consumo Promedio Diario,Cargo Fijo,Valor KwH
ENE 2024.pdf,Enero 2024,01/01/2024,10/01/2024,15/01/2024,350,4200,11.5,500.00,12.34
FEB 2024.pdf,Febrero 2024,01/02/2024,10/02/2024,15/02/2024,360,4300,12.0,505.00,12.50- Google Docs:
