Un programa para extraer todos los datos públicos del registro electoral de Puerto Rico, accesibles a través de https://consulta.ceepur.org/.
El programa toma alrededor de 5 horas para bajar todos los datos posibles.
pip install ceepur-scraperPara correr el scraper, simplemente ejecute lo siguiente en tu terminal luego de instalar el paquete:
ceepur-scraperUtiliza la opción --help para ver todas las opciones disponibles:
$ ceepur-scraper --help
usage: ceepur-scraper [-h] [--output OUTPUT_FILENAME] [--max-id MAX_ID] [--min-id MIN_ID]
[--reverse] [--max-concurrent-tasks MAX_CONCURRENT_TASKS]
[--continue-previous-scrape] [--save-descriptions] [--debug]
optional arguments:
-h, --help show this help message and exit
--output OUTPUT_FILENAME, -o OUTPUT_FILENAME
The filename to write the scraped voter records to. Defaults to
voter_records.csv.
--max-id MAX_ID The maximum voter ID to scrape. Cannot be greater than 9,999,999.
--min-id MIN_ID The minimum voter ID to scrape. Cannot be less than 1.
--reverse Whether to scrape in reverse order.
--max-concurrent-tasks MAX_CONCURRENT_TASKS
The maximum number of concurrent tasks to run. Defaults to 500.
--continue-previous-scrape, -c
Whether to continue a previous scrape that was interrupted.
--save-descriptions Whether to save the descriptions of the voter's status and category. ⚠️
WARNING: This will significantly increase the size of the output file.
--debug, -d Run in debug mode.Esto producirá un archivo llamado voter_records.csv en el directorio actual que se parecerá a esta tabla:
NumeroElectoral |
Category |
FechaNacimiento |
Precinto |
Status |
Unidad |
|---|---|---|---|---|---|
4980113 |
M |
22-10-1926 |
1 |
E |
2 |
El campo Category es un solo carácter. Su significado depende del valor de Status.
Expanda la siguiente sección para ver el significado de cada categoría:
Haz click para expandir...
El Status de un elector puede ser:
A: ActivoI: InactivoE: Excluido
El campo Category da más información acerca del Status de un elector:
- Para electores con status
A, el campoCategorypuede ser:1:VOTÓ EN NOVIEMBRE DE 20202:NO VOTÓ EN NOVIEMBRE DE 20203:INGRESÓ POR MEDIO DE NUEVA INSCRIPCIÓN4:INGRESO POR MEDIO DE INSCRIPCIÓN ESPECIAL (Reactivación)5:INGRESO POR MEDIO DE INCLUSIÓN (Administrativa)
- Para electores con status
I, el campoCategorypuede ser:1:INACTIVO EN LA DEPURACIÓN DE LISTAS POSTERIOR A LAS ELECCIONES GENERALES DE 19802:INACTIVO EN LA DEPURACIÓN DE LISTAS POSTERIOR A LAS ELECCIONES GENERALES DE 19843:INACTIVO EN LA DEPURACIÓN DE LISTAS POSTERIOR A LAS ELECCIONES GENERALES DE 19884:INACTIVO EN LA DEPURACIÓN DE LISTAS POSTERIOR A LAS ELECCIONES GENERALES DE 19925:INACTIVO EN LA DEPURACIÓN DE LISTAS POSTERIOR A LAS ELECCIONES GENERALES DE 19966:INACTIVO EN LA DEPURACIÓN DE LISTAS POSTERIOR A LAS ELECCIONES GENERALES 20007:INACTIVO EN LA DEPURACIÓN DE LISTAS POSTERIOR A LAS ELECCIONES GENERALES 20048:INACTIVO EN LA DEPURACIÓN DE LISTAS POSTERIOR A LAS ELECCIONES GENERALES 20089:INACTIVO EN LA DEPURACIÓN DE LISTAS POSTERIOR A LAS ELECCIONES GENERALES 2012A:INACTIVO EN LA DEPURACIÓN DE LISTAS POSTERIOR A LAS ELECCIONES GENERALES 2020
- Para electores con status
E, el campoCategorypuede ser:A:EXCLUSIÓN ADMINISTRATIVAC:NO ES CIUDADANO AMERICANOD:DUPLICADOE:NO TIENE 18 AÑOS DE EDADM:MUERTEP:NO ES PERSONA EN PETICIÓNR:NO ES RESIDENTE DEL PRECINTOT:INCAPACITADO MENTAL
También puedes correr el scraper con la opción --save-descriptions para guardar una descripción de cada categoría en el archivo final (
Puedes intentar de recorrer un "scrape" con la opción --continue-previous-scrape (o -c) para intentar continuar el scrape desde donde se quedó.
Si todavía hay fallos, usa la opción --debug (o -d) para ver el error completo. Si no sabes como resolverlo, abre un issue en este repositorio.
# Descargar electores 1-100 y guardar en "resultados.csv", incluyendo descripciones de categorías
ceepur-scraper --output resultados.csv --min-id 1 --max-id 100 --save-descriptions