Skip to main content

PyCNE 0.1

PyCNE es una librería de Python que permite consultar fácilmente información del Registro Electoral de Venezuela, extrayendo datos de la web oficial del CNE.

Instalación

Puedes instalar PyCNE utilizando el instalador de paquetes pip.

pip install PyCNE

Uso

Una aplicación sencilla de PyCNE se vería así:

import PyCNE

consulta = PyCNE.consulta('V',12345678)

print(consulta.info)

¿Qué acabamos de hacer?

  1. Importamos la librería a nuestro script.
  2. Creamos una instancia de la clase consulta (ver más abajo).
  3. Imprimimos en pantalla la variable consulta.info para mostrar los datos obtenidos.

A continuación encontrarás más información al respecto:

La clase consulta

Es la clase principal del módulo PyCNE, al inicializar realiza una consulta —tal como su nombre indica— a la web con los datos proporcionados. Por tanto, para poder extraer cualquier información, necesitaremos crear una instancia de esta clase.

Sintaxis:

consulta = PyCNE.consulta(nacionalidad, cedula[,opciones])

Parámetros:

Nombre Tipo Descripción Valor por defecto
nacionalidad str El prefijo correspondiente a la cédula a consultar. Acepta los valores V (venezolano) y E (extranjero). No tiene un valor por defecto. Es obligatorio especificarlo.
cedula int El número de cédula a consultar. No tiene un valor por defecto. Es obligatorio especificarlo.
altmode bool Modo alternativo (ver más abajo). Por defecto es False
base_url str La URL base a la cual se realizará la consulta http://www.cne.gob.ve/...

Modos de consulta

Existen dos formas de extraer los datos:

  • El modo normal —la manera más sencilla, rápida y precisa— funciona a través de la librería BeautifulSoup. Se obtienen los datos realizando una búsqueda a partir de las etiquetas HTML y se añaden a las variables correspondientes.
  • El modo alternativo, que no depende de la librería BeautifulSoup, extrae el contenido de la consulta y elimina (mediante expresiones regulares) la información no deseada, para posteriormente separar los datos y añadirlos a sus respectivas variables. Generalmente, este modo es más lento y engorroso. Por tanto, no es recomendable usarlo a no ser que exista algún problema que impida utilizar el modo normal.

¿Cómo acceder a la información? (Variables)

Una vez se crea la instancia, los datos de la consulta son almacenados en distintas variables. Para acceder a ellas debemos llamarlas utilizando la misma instancia que creamos previamente.

Variable Tipo Contenido Ejemplo
cedula str Cédula de la consulta realizada. V-12345678
nombre str Nombre correspondiente a la cédula. MARCOS EVANGELISTA PÉREZ JIMÉNEZ
estado str Estado del centro. DTTO. CAPITAL
municipio str Municipio del centro. MP. BLVNO LIBERTADOR
parroquia str Parroquia del centro. PQ. SUCRE
centro str Centro de votación. COLEGIO DE CARACAS
dirección str Dirección del centro. SECTOR XXX AVENIDA XXX CALLE XXX

Adicionalmente, toda la información de la consulta es recogida dentro de un diccionario de Python, de manera que se pueda acceder a ella con mayor facilidad:

Variable Tipo Descripción
info dict* Diccionario que contiene todas las variables anteriores.*
info_json json string Similar a la variable info, pero en formato JSON.
* de usarse la clase multi, la variable info pasaría de ser un diccionario a ser una lista de diccionarios.

Ejemplos:

import PyCNE

consulta = PyCNE.consulta('V',12345678)

print(consulta.cedula)
# Resultado: V-12345678

print(consulta.nombre)
# Resultado: MARCOS EVANGELISTA PÉREZ JIMÉNEZ

print(consulta.info)
# Resultado: {'cedula':'V-12345678',
#			  'nombre':'MARCOS EVANGELISTA PÉREZ JIMÉNEZ',
#			  'estado':'DTTO. CAPITAL',
#			  'municipio':'MP. BLVNO LIBERTADOR',
#			  'parroquia':'PQ. SUCRE',
#			  'centro':'COLEGIO DE CARACAS',
#			  'direccion':'SECTOR XXX AVENIDA XXX CALLE XXX'}

La clase multi

A veces, es necesario realizar el proceso con más de una cédula. La clase multi es una clase hija de la clase consulta, que nos permitirá consultar múltiples cédulas sin la necesidad de crear infinitas instancias de la clase padre.

Esta clase tomará las cédulas de una lista y asignará los resultados a la variable info anteriormente mencionada, esta vez como una lista de diccionarios (ver ejemplo más abajo).

Sintaxis:

consulta = PyCNE.consulta.multi(cedulas[,opciones])

Parámetros:

Nombre Tipo Descripción Valor por defecto
cedulas list Lista que contiene todas las cédulas a consultar, en el formato: V-123456789 o E-123456789 No tiene un valor por defecto. Es obligatorio especificarlo.
altmode bool Modo alternativo (ver arriba). Por defecto es False
base_url str La URL base a la cual se realizará la consulta http://www.cne.gob.ve/...

Ejemplo:

import PyCNE

cedulas = ['V-12345678','V-87654321']

consulta = PyCNE.consulta.multi(cedulas)

print(consulta.info)

El resultado de esta función print sería:

[{'cedula':'V-12345678',
'nombre':'MARCOS EVANGELISTA PÉREZ JIMÉNEZ',
'estado':'DTTO. CAPITAL',
'municipio':'MP. BLVNO LIBERTADOR',
'parroquia':'PQ. SUCRE',
'centro':'COLEGIO DE CARACAS',
'direccion':'SECTOR XXX AVENIDA XXX CALLE XXX'},

{'cedula':'V-87654321',
'nombre':'JOSÉ GREGORIO HERNÁNDEZ CISNEROS',
'estado':'TRUJILLO',
'municipio':'MP. ANDRÉS BELLO',
'parroquia':'PQ. LA ESPERANZA',
'centro':'COLEGIO DE TRUJILLO',
'direccion':'SECTOR XXX AVENIDA XXX CALLE XXX'}]

Errores y excepciones

Exception: La cédula no se encuentra inscrita en el CNE (Error 0)

Esta excepción ocurre cuando la cédula consultada es una expresión válida, pero no aparece en los registros del CNE, por lo que es imposible extraer cualquier información.

Habitualmente, detendría el flujo de ejecución; sin embargo, pueden ser ignoradas o tratadas mediante try y except.

IMPORTANTE: Cuando esta excepción ocurre en una instancia de la clase multi, no se detiene el programa. El flujo de ejecución continúa y las cédulas que no se encuentran registradas se almacenan en una lista, a la cual se puede acceder a través de las siguientes variables:

Variable Tipo Descripción
errors list Lista que contiene todas las cédulas que no se encuentran registradas en el CNE.
errors_json json string Similar a la variable errors, pero en formato JSON.

Ejemplo:

print(consulta.errors)
# Resultado: ['V-00000000','V-00000001']

ConnectionError: No se ha podido establecer la conexión con el servidor (Error 1)

Este error ocurre cuando no se logra llevar a cabo la consulta debido a problemas con la conexión, o a que la URL es incorrecta. En este último caso, quizá sería conveniente colocar la URL apropiada mediante el parámetro base_url en ambas clases. De lo contrario, no es recomendable alterar dicho valor.

Exception: Los parámetros de la consulta están vacíos (Error 2)

Esta excepción aparece cuando se lleva a cabo una consulta múltiple utilizando una lista vacía como parámetro.

Contribuciones

Las contribuciones son bienvenidas. Si observas algún problema o bug, o deseas sugerir algún cambio, ¡siéntete libre de comentarlo en la sección correspondiente!

Importante

Toda la información que se puede extraer con esta librería es pública; sin embargo, no nos hacemos responsables por el uso que se le de a esta herramienta.

Licencia

MIT

Metadata

Release files for PyCNE 0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for PyCNE 0.1
File Size Uploaded
PyCNE-0.1.tar.gz 6.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for PyCNE 0.1
File Interpreter ABI Platform
PyCNE-0.1-py3-none-any.whl Python 3 none any Details

Total release size: 12.2 kB

Release files / PyCNE-0.1.tar.gz

Download URL PyCNE-0.1.tar.gz
Size 6.3 kB
Tags Source
SHA-256 checksum
How to use checksums
d6d9d271e806d55f3295dd557876aab2680bb69461ae1fe6ca599afdaaca549e
BLAKE2b-256 checksum
How to use checksums
27ae1e117fa6dc0a07be8c1a418190aa3f0393d2cb41daa233f47d1a1193ab74
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.1

Release files / PyCNE-0.1-py3-none-any.whl

Download URL PyCNE-0.1-py3-none-any.whl
Size 5.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8e9ddd0d7a233427984a60f44f851e5a7fb32d456d5139b1b2d1a12a830952f8
BLAKE2b-256 checksum
How to use checksums
c41e568bfcc3b0326c1f60c658edbc11bf1ddfc5d5ea9011ff212791a1e1bbc7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.1

Release history Release notifications | RSS feed

This release

0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page