This package is dedicated to automating the extraction of data found in the Peruvian state's Investment Monitoring System - SSI portal, where public investment projects in Peru can be monitored through Unique Investment Codes (CUI).
Project description
SiSedeInversiones
Este paquete está dedicado a automatizar la recolección de datos que se encuentran en el portal “Sistema de Seguimiento de Inversiones – SSI” del Estado peruano, donde se pueden monitorear los proyectos de inversión pública en el Perú a través de los Códigos Únicos de Inversión (CUI).
Ir a la Documentación »
View Demo
·
Report Bug
·
Request Feature
Tabla de Contenidos
Acerca del proyecto
SiSedeInversiones, es un paquete de python diseñada para automatizar la tarea de recolectar información de los proyectos de inversión pública de Perú que se encuentran en el "Sistema de Seguimiento de Inversiones (SSI)".
SiSedeInversiones hace uso de los Códigos Únicos de Inversiones (CUI) de los proyectos de inversión para realizar la consulta en el portal del SSI, de donde extrae la información sobre los:
- Datos generales
- Información financiera
- Contratos
- InfObras
Asimismo, también puede recolectar la información de los proyectos, que se encuentran en el:
- Formato N°08-A Registros en la Fase de Ejecución Ejemplo
- La lista de ejecución simple pública. Ejemplo
En ese sentido, SiSedeInversiones luego de realizar las consultas automáticas e identificar la información a recolectar generará un archivo .xlsx que reunira los datos relacionados al proyecto consultado usando su CUI.
Construido con
Empezando
Para usar el paquete SiSedeInversiones, es necesario tener en cuenta lo siguiente:
Pre-requisitos
El paquete fue desarrollado para python v3.11 principalmente. Aunque se hizo algunas pruebas con las versiones v3.10.
Instalación
En la consola:
(.venv) pip install SiSedeInversiones
Al ejecutar este comando, instalamos el paquete SiSedeInversiones.
Atributos para el uso del paquete
Los atributos que recibe el paquete son los siguientes:
- file_read: Es el path de la dirección donde esta ubicado el archivo que contiene los CUI's, el paquete recibe archivos en formato .csv y no otros.
- num_range: Inidcamos el rango de registros que se trabajaran, ya sean desde el registro
5_10,2_20... Este rango se pone a criterio del que lo use. - path_export: Es la dirección de la carpeta donde se guardara el archivo que contiene toda la información que se scrapeo.
- file_type: Aqui indicamos el tipo de archivo que se generará al exportar la información. De momento se tiene habilitado para .xlsx
- year: En este atributo indicamos el año de los registros que se trabajaran. Ponerlo en formato string.
Archivo del atributo file_read
El paquete recibe un archivo .csv en el atributo file_read, este archivo debe tener dentro una columna que se llame 'cui' que contenga los Códigos Únicos de Inversion de los proyectos que quiere extraer la información que se comparte en el Sistema de Seguimiento de Inversiones.
| cui | ... | ... |
|---|---|---|
| 2055893 | ... | ... |
| 2055895 | ... | ... |
| 2107767 | ... | ... |
| 2112478 | ... | ... |
| 2149746 | ... | ... |
| ... |
Nota: Es necesario que dentro del archivo .csv la columna que tenga la lista de los CUI's sea llamada "cui" en minuscula. El paquete esta diseñado para ubicar dicha columna de un archivo .csv.
Uso
Para el uso del paquete SiSedeInversiones debemos seguir los siguiente pasos.
Para Visual Studio Code (VSC) seguimos los siguientes pases:
- Importamos el paquete.
[\example.py]
from sisedeinversiones.main import SSI
- Luego creamos los siguientes atributos.
[\example.py]
file_read = "/ruta/a/su/directorio/[nombre_archivo].csv"
path_export = "/ruta/a/su/directorio/de/destino"
num_range = "[número-inicio]_[número-final]"
file_type = ".xlsx"
year = "[año]"
- Instanciamos el objeto
SSI
[\example.py]
scraper = SSI(file_read, num_range, path_export, file_type, year)
Importante
Debemos mantener el orden de los atributos que se usan para instanciar la clase SSI.
- Luego de instanciarlo en una clase
scraper, podemos usar los métodos de la clase SSI.
El metodo main_ssi() se dedica a la extracción de la información que se encuentra en el portal principal del Sistema de Seguimiento de Inversiones (https://ofi5.mef.gob.pe/ssi/ssi/Index)
[\example.py]
scraper.main_ssi()
Con el metodo format_eight() extraemos información del "Formato N°08-A Registros en la Fase de Ejecución"
[\example.py]
scraper.format_eight()
El metodo list_ejecución() se dedica a descargar información de la página "Lista de ejecución simple pública"
[\example.py]
scraper.list_ejecucion()
- Por lo tanto, el código completo para ejecutar el paquete es el siguiente:
[\example.py]
# Importamos la libreria
from sisedeinversiones.main import SSI
# Creamos los atribuitos
file_read = "/ruta/a/su/directorio/[nombre_archivo].csv"
path_export = "/ruta/a/su/directorio/de/destino"
num_range = "[número-inicio]_[número-final]"
file_type = ".xlsx"
year = "[año]"
# Instanciamos la clase SSI
scraper = SSI(file_read, num_range, path_export, file_type, year)
# Llamamos al metodo main_ssi()
scraper.main_ssi()
# Llamamos al método format_eight()
scraper.format_eight()
# Llamamos al método list_ejecucion()
scraper.list_ejecucion()
- Ejecutamos el archivo en la consola
(.venv) python example.py
- Se activa una terminal que controla el paquete
rpaque controla un navegador. Alli identificará la información que se estará almacenando en una lista. Cuando se activa este proceso se debe dejar este navegador sin usarlo.
Importante: Si durante el proceso de extracción, el navegador se interrumpe por acción del que maneja, por falta de información u otra razón.
En ese caso, se debe dar click a la consola que controla el navegador y alli se debe presionar los siguientes teclados "crtl+C" dos veces y se cerrara esa consola. Luego recien se debe cerrar el navegador que estaba controlando.
Para más ejemplos, por favor revise la Documentación
Licencia
Este repositorio esta autorizado bajo la licencia MIT. Ver LICENCIA para mas detalles.
Contacto
Jelsin Palomino - @facebook - jstpalomino@hotmail.com
Enlace del proyecto: https://github.com/JelsinPalomino/SiSedeInversiones
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file SiSedeInversiones-1.0.0.tar.gz.
File metadata
- Download URL: SiSedeInversiones-1.0.0.tar.gz
- Upload date:
- Size: 16.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
55cb826550956cda2b7ad5376fc3590bb84d40e25eb4464c9b0465ff93bca623
|
|
| MD5 |
9a9a8640b8433bb0ea31c72f0d4c3308
|
|
| BLAKE2b-256 |
893cb69c68045646855b43c8794a6703543222c3d32e3a10f64035dd344feb2a
|
File details
Details for the file SiSedeInversiones-1.0.0-py3-none-any.whl.
File metadata
- Download URL: SiSedeInversiones-1.0.0-py3-none-any.whl
- Upload date:
- Size: 22.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5727b16c4d72256541cf181aa115332b548ba6e0112be9b6c018910b214ba4fa
|
|
| MD5 |
a41e268117e828211fad09162c2155bf
|
|
| BLAKE2b-256 |
b33f25155f797f4ade86f12618565a41fec7fa4bec5deb329a8c8f8692316ad2
|