Skip to content

This package is dedicated to automating the extraction of data found in the Peruvian state's "Sistema de Seguimiento de Inversiones - SSI" portal, where public investment projects in Peru can be monitored through Unique Investment Codes (CUI).

License

Notifications You must be signed in to change notification settings

JelsinPalomino/SiSedeInversiones

Repository files navigation

Build-sphinx-docs Test-Linters-Publish Forks Stargazers Issues MIT License Contributors LinkedIn Download-PyPi


Logo

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
  1. Acerca del proyecto
  2. Empezando
  3. Uso
  4. Contribuyendo
  5. Licencia
  6. Contacto

Acerca del proyecto

image

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.

(back to top)

Construido con

RPA-Python

(back to top)

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.

(back to top)

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()

image

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()

image

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()

image

  • 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 rpa que 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

(back to top)

Licencia

Este repositorio esta autorizado bajo la licencia MIT. Ver LICENCIA para mas detalles.

(back to top)

Contacto

Jelsin Palomino - @facebook - [email protected]

Enlace del proyecto: https://github.com/JelsinPalomino/SiSedeInversiones

(back to top)

About

This package is dedicated to automating the extraction of data found in the Peruvian state's "Sistema de Seguimiento de Inversiones - SSI" portal, where public investment projects in Peru can be monitored through Unique Investment Codes (CUI).

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages