Code Monkey home page Code Monkey logo

coletor-mppi's Introduction

testes
Open in Gitpod

Ministério Público do Piauí - Crawler

Este crawler tem como objetivo a recuperação de informações sobre folhas de pagamentos dos membros ativos do Ministério Público do Piauí, a partir de 2018. O site com as informações pode ser acessado aqui.

O crawler está estruturado como uma CLI. É necessário passar os argumentos mês, ano e caminho para armazenar os arquivos via variáveis de ambiente (MONTH, YEAR, OUTPUT_FOLDER). E então, serão baixadas as planilhas, no formato ods. As mesmas são correpondentes a remuneração mensal e verbas indenizatórias dos Membros Ativos.

Dicionário de dados

As planilhas referentes á remunerações possuem as seguintes colunas:

Campo Descrição
Matrícula (Number) Nome completo do funcionário
Nome (String) Nome completo do funcionário
Cargo (String) Cargo do funcionário dentro do MP
Lotação (String) Local (cidade, departamento, promotoria) em que o funcionário trabalha
Remuneração do cargo efetivo (Number) Vencimento, GAMPU, V.P.I, Adicionais de Qualificação, G.A.E e G.A.S, além de outras desta natureza. Soma de todas essas remunerações
Outras Verbas Remuneratórias, Legais ou Judiciais (Number) V.P.N.I., Adicional por tempo de serviço, quintos, décimos e vantagens decorrentes de sentença judicial ou extensão administrativa
Função de confiança ou cargo em comissão (Number) Rubricas que representam a retribuição paga pelo exercício de função (servidor efetivo) ou remuneração de cargo em comissão (servidor sem vínculo ou requisitado)
Gratificação natalina (Number) Parcelas da Gratificação Natalina (13º) pagas no mês corrente, ou no caso de vacância ou exoneração do servidor
Férias - ⅓ Constitucional (Number) Adicional correspondente a 1/3 (um terço) da remuneração, pago ao servidor por ocasião das férias
Abono de permanência (Number) Valor equivalente ao da contribuição previdenciária, devido ao funcionário público que esteja em condição de aposentar-se, mas que optou por continuar em atividade (instituído pela Emenda Constitucional nº 41, de 16 de dezembro de 2003)
Total de Rendimentos Brutos (Number) Total dos rendimentos brutos pagos no mês.
Contribuição Previdenciária (Number) Contribuição Previdenciária
Imposto de Renda (Number) Imposto de Renda Retido na Fonte
Retenção por Teto Constitucional (Number) Valor deduzido da remuneração bruta, quando esta ultrapassa o teto constitucional, de acordo com a Resolução nº 09/2006 do CNMP
Total de Descontos (Number) Soma dos descontos referidos nos itens 8, 9 e 10
Total Líquido (Number) Rendimento obtido após o abatimento dos descontos referidos no item 11. O valor líquido efetivamente recebido pelo membro ou servidor pode ser inferior ao ora divulgado, porque não são considerados os descontos de caráter pessoal
Indenizações (Number) Verbas referentes á indenizações recebidas pelo funcionario á titulo de Adicional noturno, Cumulações, Serviços extraordinários e substituição de função
Outras Remunerações Temporárias (Number) Valores pagos a título de Auxílio-alimentação, Auxílio-cursos,Auxílio-Saúde, Auxílio-creche, Auxílio-moradia

As planilhas referentes á verbas indenizatórias e remunerações temporárias possuem as seguintes colunas:

Campo Descrição
Abono Pecuniário (Number) roca de alguns dias do período de férias pelo recebimento de um valor extra.
Auxílio alimentação (Number)
Auxílio saúde (Number)
Indenização por cumulação (Number)
Complemento por entrância (Number)

Dificuldades na automação da coleta dos dados

  • Falta de padrão nas URLs: Como é formada a URL atualmente: - Base (parte fixa): https://www.mppi.mp.br/internet/wp-content/uploads//"; - Ano: possívelmente o ano em que foi disponibilizada a planilha, visto que para as tabelas de dezembro e algumas de novembro esse atributo é igual ao ano posterior; - Código: campo composto por dois digitos, que altera de acordo com mês e ano; - Complemento: campo que identifica que a planilha é referente aos membros ativos, variando em vários meses a maneira como é escrito; - Mês: referencia o mês da planilha, alterando a forma como é escrito(Digíto ou por extenso); - Ano: referencia o ano da planilha, alterando a forma que é escrito (4 ou 2 dígitos).

    Ex: Link para download da planilha de remuneração mensal de julho de 2020 - https://www.mppi.mp.br/internet/wp-content/uploads/2020/09/Remuneracao-de-todos-os-membros-ativos-%E2%80%93-julho-2020.ods

    Link para download da planilha de remuneração mensal de agosto de 2020: https://www.mppi.mp.br/internet/wp-content/uploads/2020/10/Remuneracao-de-todos-os-membros-ativos-%E2%80%93-agosto-%E2%80%93-2020.ods

  • Variação na formatação das planilhas:

    • Algumas planilhas disponibilizam os dados a partir da primeira coluna, em outras os dados commeçam na segunda coluna;
    • No ano de 2018 temos dois tipos de planilhas para as remunerações mensais (São distintas em relação a ordem dos variáveis e o campo matrícula se encontra apenas nas planilhas posteriores a junho de 2018);
    • Em 2019 temos dois tipos de planilha para remunerações mensais (a variação é apenas na ordem das variáveis). A planilha de verbas indenizatórias se mantem constante para todos os meses que foram disponibilizada;
    • Em 2020 a planilha de remunerações mensais não teve variação em relação as planilhas do segundo semestre de 2019. Apresentando uma nova ordem nas variáveis das planilhas de verbas indenizatórias, a qual se manteu constante durate todo o ano.

Como realizar a coleta automatica para meses que foram acrescidos no MPPI

  • Primeiramente é necessário identicar o código presente no link referente ao mês que desejo acrescentar (Formação do link explicada no campo anterior). Ao indentificar, preencher na classe src/utils.py o campo destinado ao mesmo. Ex.: A função cod2021(month) retorna um dicionario, no qual a chave é o mẽs e o valor é esse cógido

  • Na classe src/crawler.py é necessário verificar se a formação do link encontra-se em alguma condição já implementada ou se é necessário implementar mais uma condição (Lembre-se que é necessário verificar o link para remunerações mensais e para remuneraões de verbas indenizatória/temporárias).

Como usar

Executando sem Docker

  • É necessário ter instalado o Python versão 3.8.5;

No Linux, distribuições Ubuntu/Mint:

sudo apt install python3 python3-pip
  • Utilize o PiP (foi utilizada a versão 20.3.3) para instalar as dependências que estão listadas no arquivo requirements.txt.

      $ pip3 install -r requirements.txt
  • Após concluida a instalação das dependências utilize os seguintes comandos:

   $ cd src
   $ MONTH=1 YEAR=2020 GIT_COMMIT=$(git rev-list -1 HEAD) python3 main.py

Executando com Docker

  • Inicialmente é preciso instalar o Docker.

  • Construção da imagem:

  $ sudo docker build -t mppi .
  • Execução:
  $ sudo docker run -e MONTH=2 -e YEAR=2020 -e GIT_COMMIT=$(git rev-list -1 HEAD) mppi

coletor-mppi's People

Contributors

samarasss avatar marcos-inja avatar joaolgm avatar danielfireman avatar

Stargazers

 avatar

Watchers

Talita Lôbo avatar James Cloos avatar nazareno avatar Jefferson Neves avatar  avatar

Forkers

marcos-inja

coletor-mppi's Issues

Deixar o desenvolvimento funcionando com gitpod.io

Para facilitar colaboração, vamos tentar deixar o suporte a https://gitpod.io 100%.

Lembrando que a IDE padrão deve ser o vscode e muito provavelmente você vai precisar instar coisas usando .gitpod.Dockerfile a .gitpod.yml. A ideia é a pessoa abrir criar um novo gitpod para o repositório e já conseguir rodar usando o README.md.

Quando fizer isso, vamos colocar o badge do gitpod também no readme!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.