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
-me-sdurante 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> - Utilização das flags
Visualizando Navegador Chrome durante a execução
- Por padrão execução não mostra navegador Chrome "trabalhando". Flag
--headlessfoi criada e definida como padrãoTruepara tal. Possível utilizar flag--no-headlessdurante 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
--pdffoi criada e definida como padrãoTruepara tal. Possível utilizar flag--no-pdfdurante 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-recentepara busca das informações do último contracheque disponível. - Comando
contracheque mg todospara busca das informações de todos os contracheque disponíveis.
- Comando
[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
- Criação de arquivos de configuração inicial do pacote:
Metadata
Release files for meu-contracheque 0.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| meu-contracheque-0.3.1.tar.gz | 15.0 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| meu_contracheque-0.3.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 15.0 MB
Release files / meu-contracheque-0.3.1.tar.gz
| Download URL | meu-contracheque-0.3.1.tar.gz |
|---|---|
| Size | 15.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4f1a9f4af461ba323211645ea494d8a0b706c0c51d620f77935a4ae945184083
|
|
BLAKE2b-256 checksum How to use checksums |
440d01e929e92d9196f5c5d42c054f7f97db36d8d3e330bb1db49d39252a2ec0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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
|
Release files / meu_contracheque-0.3.1-py3-none-any.whl
| Download URL | meu_contracheque-0.3.1-py3-none-any.whl |
|---|---|
| Size | 12.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
778d282d893b7985640776507fd2e5f3233765ed1d38eac37522059880f00282
|
|
BLAKE2b-256 checksum How to use checksums |
bf26bb97b5dadcdab45496b377e326884aa98c9426c224394f90a8ffd3ce7451
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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
|