cfe-rates-scraper
Qué es
El bot que entra al portal público de CFE, extrae la tabla de cargos de la tarifa solicitada y devuelve el resultado por cola.
Tipo de sistema
| Campo | Valor |
|---|---|
| Tipo | Bot AWS Lambda |
| Lenguaje | Python |
| Automatización | Selenium con Chromium headless |
| Empaquetado | Imagen Docker |
| Disparo | Mensaje SQS |
| Despliegue | AWS SAM (us-east-2), ambientes de desarrollo y producción |
Estado documental
- Estado: Borrador
- Última actualización: 2026-08-02
- Owner: Pendiente
- SME requerido: desarrollo
- Fuente resumida: código, plantilla de despliegue y documentación del repositorio.
Qué hace
mensaje SQS ──► elige la estrategia según la tarifa pedida
│
├─ abre la página pública de CFE correspondiente
├─ selecciona año, mes, estado, municipio y división
├─ extrae la tabla de cargos
├─ publica el resultado en la cola de respuesta
└─ elimina el mensaje procesadoTarifas soportadas
Cada tarifa tiene su propia página en el portal de CFE y su propia estrategia de extracción:
| Tarifa | Qué cubre |
|---|---|
gdmth | Gran Demanda en Media Tensión Horaria. |
dist | Demanda Industrial Subtransmisión. |
dit | Demanda Industrial en Transmisión. |
pdbt | Pequeña Demanda en Baja Tensión. |
Parámetros del mensaje
| Campo | Para qué |
|---|---|
region | Identificador interno de región. Se devuelve sin transformar. |
rate | Tarifa a consultar. |
year | Año, tal como aparece en el selector de CFE. |
month | Mes, con el texto visible en CFE (ENERO, MARZO…). |
state | Estado, con el texto visible en CFE. |
municipality | Municipio, con el texto visible en CFE. |
division | División, con el texto visible en CFE. |
Los valores deben coincidir con el texto del portal
Los parámetros no son códigos internos: son las etiquetas que CFE muestra en sus combos. Un acento, una mayúscula o una abreviatura distinta hacen que el bot no encuentre la opción.
Caso especial: Ciudad de México
CFE publica las tarifas de la Ciudad de México separadas en tres zonas: norte, centro y sur. El bot aplica estrategias específicas para ese caso.
Es un detalle que hay que recordar al comparar resultados: una consulta de Ciudad de México no devuelve lo mismo que la de cualquier otro estado.
Fragilidad
Depende de la interfaz de CFE, con protección anti-bots
El bot navega el portal seleccionando combos y leyendo tablas. Cualquier cambio de interfaz lo rompe.
Además, el portal está protegido por un sistema anti-bots. El proyecto ya incluye manejo explícito de ese desafío y esperas condicionadas en lugar de pausas fijas, consecuencia de incidentes previos.
Relación con otros sistemas
| Sistema | Relación |
|---|---|
cfe-rates-microservice | Le envía las solicitudes y consume sus respuestas. |
Todo el contexto de negocio vive en el microservicio; este bot solo extrae.
Operación
No tiene calendario propio: se dispara desde cfe-rates-microservice. Ver Operación de cfe-rates-microservice.
| Síntoma | Causa probable |
|---|---|
| No responde a ninguna solicitud | La Lambda falla al arrancar, o el portal bloqueó el acceso. |
| Responde en unas regiones y en otras no | Datos que no coinciden con las etiquetas del portal, o la combinación no existe en CFE. |
| Falla sostenida durante días | Cambio de interfaz en el portal de CFE. |
| Tiempos de espera agotados | Portal lento o protección anti-bots activa. |
Riesgos y gaps
- Sin alternativa a la navegación del portal: CFE no ofrece API para estas tarifas.
- La protección anti-bots puede endurecerse en cualquier momento.
- No hay alerta cuando el bot deja de responder.
- No está documentado el tiempo esperado de respuesta.
Próxima revisión
Al definir el alertamiento de la cadena de tarifas.