Captura automática de los resultados presidenciales publicados por la ONPE en https://resultadoelectoral.onpe.gob.pe/main/presidenciales.
La plataforma oficial es una SPA Angular sin API pública documentada. Este
proyecto identifica los endpoints JSON internos que consume la SPA y los
consulta directamente con requests (sin navegador) — rápido y liviano.
Base: https://resultadoelectoral.onpe.gob.pe/presentacion-backend
| Endpoint | Campos relevantes |
|---|---|
/proceso/proceso-electoral-activo |
idEleccionPrincipal |
/resumen-general/totales?idEleccion=<id>&tipoFiltro=eleccion |
actasContabilizadas (%), totalActas, fechaActualizacion |
/eleccion-presidencial/participantes-ubicacion-geografica-nombre?idEleccion=<id>&tipoFiltro=eleccion |
Lista ordenada de candidatos con votos y porcentajes |
python -m venv venv
source venv/Scripts/activate # Windows Git Bash
pip install -r requirements.txt
python -m playwright install chromium # solo para sniff_endpoints.pypython scrape_onpe.pyGenera:
data/onpe_latest.json— snapshot completo del último cortedata/onpe_history.csv— histórico append-only, una fila por candidato/corte
scrape_onpe.py— scraper directo vía HTTP (producción)sniff_endpoints.py— Playwright headless que intercepta XHR/fetch; se usa para redescubrir endpoints si la ONPE los cambiarequirements.txt— dependencias
Para ejecutar cada 25 minutos, usar Windows Task Scheduler o cron:
*/25 * * * * /ruta/a/venv/bin/python /ruta/a/scrape_onpe.py