Skip to main content

Buscar informações de contracheques via web scraping

Project description

Meu Contracheque :bookmark_tabs:

Sobre este repositório :open_book:

Meu contracheque é um pacote Python, acessível via interface CLI, utilizado para buscar informações de contracheques via web scraping.

A primeira versão deste pacote conta com a busca de contracheques dos servidores públicos do Estado de Minas Gerais, disponibilizados na aba "Emissão de Contracheque" do site Portal do Servidor.

Orientações gerais

  • Instalação de Python 3.

  • Utilização de navegador Google Chrome.

  • Não copie e cole os comandos abaixo cegamente, modifique os textos entre "< >" com as informações pertinente à sua realidade.

Setup da máquina

Recomendo utilizar uma pasta específica para execução dos comandos do pacote, criando e ativando ambiente Python dentro da mesma, conforme sugerido abaixo:

Pasta para execução dos comandos e ativação de ambiente python

  • Necessário instalação de Python 3 antes da execução os comandos abaixo para ambos os sistemas operacionais.

  • Sistema operacional Linux:

# Criação da pasta para execução do projeto
$ mkdir <nome-desejado-para-pasta>

# Acessando a pasta criada
$ cd <nome-desejado-para-pasta>

# Criação ambiente python
$ python3 -m venv venv

# Ativação ambiente python
$ source venv/bin/activate
  • Sistema operacional Windows:
    • Recomendo a utilização de Git Bash disponível com instalação de Git para Windows.
# Criação da pasta para execução do projeto
$ mkdir <nome-desejado-para-pasta>

# Acessando a pasta criada
$ cd <nome-desejado-para-pasta>

# Criação ambiente python
$ python -m venv venv

# Ativação ambiente python
$ source venv/Scripts/activate

Instalação cromedriver

  • Identifique a versão do navegador Chrome instalado em sua máquina digitando chrome://version/ na barra de navegação do mesmo.

  • Realize o download do drive específico para versão chrome instalada em sua máquina.

  • Necessário descompactar arquivo baixado.

  • Para sistema operacional Windows basta incluir o caminho do arquivo descompactado no path.

  • Para sistema operacional Linux incluir o arquivo no caminho /usr/local/bin.

Passando suas credenciais para buscar o contracheque

  • As credenciais masp e senha para busca de contracheque poderão ser passadas de duas maneiras, a saber:

    • Utilização das flags -m e -s durante a chamada das funções
    $ meu-contracheque mg -m <masp-usuario> -s <senha-usuario> mais-recente
    
    • Arquivo .env na raiz da pasta aonde os comandos serão executados.
    # Estrutura arquivo .env a ser criado
    MASP=<masp-usuario>
    PORTAL_PWD=<senha-usuario>
    

Visualizando Navegador Chrome durante a execução

  • Por padrão execução não mostra navegador Chrome "trabalhando". Flag --headless foi criada e definida como padrão True para tal. Possível utilizar flag --no-headless durante a execução para que o navegador seja acionado na tela, conforme demostrado abaixo:
$ meu-contracheque mg -m <masp-usuario> -s <senha-usuario> --no-headless

Baixando arquivo pdf

  • Por padrão execução fará o download do arquivo pdf. Flag --pdf foi criada e definida como padrão True para tal. Possível utilizar flag --no-pdf durante a execução sem o download, conforme demostrado abaixo:
$ meu-contracheque mg -m <masp-usuario> -s <senha-usuario> --no-pdf

obs.: Arquivo pdf gerado será salvo na pasta contracheques. A mesma será criada caso não exista.

Instalação

O meu-contracheque está disponível no Python Package Index - PyPI e pode ser instalado utilizando-se o comando abaixo:

# Antes de executar o comando abaixo lembre-se que ambiente Python deverá estar ativo
$ pip install meu-contracheque

Utilização

O resultado da execução dos comandos abaixo será a criação do arquivo "contracheques.csv". As informações retornadas estão organizadas em formato tabular. Toda execução subscreve o arquivo "contracheques.csv" anteriormente gerado.

  • Buscar informações do contracheque mais recente:
$ meu-contracheque mg mais-recente
  • Buscar informações de todos os contracheques emitidos:

Obs.: Este comando deve ser utilizado para períodos sem interrupção na geração dos contracheques.

$ meu-contracheque mg todos

Obs.: Esta opção poderá demorar, a depender do número de contracheques a serem exportados. O log de execução do comando será exibido no terminal, facilitando o entendimento que está acontecendo.

  • Buscar informações de todos os contracheques emitidos com períodos em que a emissão foi interrompida:

Obs.: Deverá ser informado período para qual a busca se encerrará. Exemplo. Primeiro contracheque emitido em 01/2010 deverá ser passado flag -sp 12/2009 (para que seja retornado o contracheque de 01/2010 e a rotina seja encerrada no mês 12/2009).

$ meu-contracheque mg ate-periodo-inicial -sp 12/2009

Obs.: Esta opção poderá demorar, a depender do número de contracheques a serem exportados. O log de execução do comando será exibido no terminal, facilitando o entendimento que está acontecendo.

Encontrou algo errado no código ou quer melhorá-lo

Abra um Issue ou um Pull Request!!! Este tipo de contribuição auxiliará no crescimento do código de maneira exponencial! Se deseja colocar a mão na massa, acesse as sugestões de melhorias já documentadas nos Issues com a tag "enhancement".

Controle de alterações

Documentação das principais alterações sofridas por este repositório. Baseado na filosofia Mantenha um Changelog.

[0.3.1] - 2022-11-16

  • Implementa flag --no-headless na busca do último contracheque

[0.3.0] - 2022-11-13

  • Refaz o processo para novo portal do servidor mg
  • Somente função last period funcionando no momento

[0.2.5] - 2022-03-09

  • Melhora geração arquivo pdf

[0.2.4] - 2022-03-09

  • Corrige nome arquivo pdf

[0.2.3] - 2022-03-09

  • Cria flag para pdf para determinar download do contracheque (--pdf/--no-pdf)
  • Melhora Readme.md

[0.2.2] - 2022-03-09

  • Flags --masp e --senha passados após subcomando mg
  • Cria flag para determinar se Chrome ficará headless durante execução (--headless/--no-headless)
  • Melhora Readme.md

[0.2.1] - 2022-03-08

  • Chrome headless durante execução

[0.2.0] - 2021-12-27

  • Inclusão comando ate-periodo-inicial
  • Trocando print por click.echo para melhorar interface usuário no windows

[0.1.1] - 2021-12-08

  • Correção encoding utf-8 durante extração código fonte da página em sistema operacional windows

[0.1.0] - 2021-12-06

  • Versão inicial
    • Comando contracheque mg mais-recente para busca das informações do último contracheque disponível.
    • Comando contracheque mg todos para busca das informações de todos os contracheque disponíveis.

[0.0.1.900] - 2021-11-27

  • Versão para teste de setup do pacote
    • Criação de arquivos de configuração inicial do pacote:
      • README.md,
      • CHANGELOG.md,
      • Makefile,
      • Manifest.in
      • Requirements.txt
      • setup.py

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

meu-contracheque-0.3.1.tar.gz (15.0 MB view details)

Uploaded Source

Built Distribution

meu_contracheque-0.3.1-py3-none-any.whl (12.8 kB view details)

Uploaded Python 3

File details

Details for the file meu-contracheque-0.3.1.tar.gz.

File metadata

  • Download URL: meu-contracheque-0.3.1.tar.gz
  • Upload date:
  • Size: 15.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/5.0.0 pkginfo/1.8.3 requests/2.28.1 requests-toolbelt/0.10.1 tqdm/4.64.1 CPython/3.10.6

File hashes

Hashes for meu-contracheque-0.3.1.tar.gz
Algorithm Hash digest
SHA256 4f1a9f4af461ba323211645ea494d8a0b706c0c51d620f77935a4ae945184083
MD5 1f6512f91aa0477f01a410c1be0e1ead
BLAKE2b-256 440d01e929e92d9196f5c5d42c054f7f97db36d8d3e330bb1db49d39252a2ec0

See more details on using hashes here.

File details

Details for the file meu_contracheque-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: meu_contracheque-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 12.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/5.0.0 pkginfo/1.8.3 requests/2.28.1 requests-toolbelt/0.10.1 tqdm/4.64.1 CPython/3.10.6

File hashes

Hashes for meu_contracheque-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 778d282d893b7985640776507fd2e5f3233765ed1d38eac37522059880f00282
MD5 8e71821a730da04a0f93d243947450fc
BLAKE2b-256 bf26bb97b5dadcdab45496b377e326884aa98c9426c224394f90a8ffd3ce7451

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page