O que fazer quando a empresa não disponibilizar uma API para você poder consumir?
Após alguns dias pesquisando e avaliando as alternativas de como automatizar esse processo, me deparei com Selenium, uma biblioteca poderosa. Com ela é possível realizar autenticação, ações como: navegar no site e baixar arquivos. E é o que essa automatização se propõe a fazer.
Vou destacar aqui os parâmetros principais, os que conversam diretamente com o Selenium. Para isso, acesse o arquivo parameters.py
Para definir o endereço do site basta atribuí-lo na variável link=''
.
Se o endereço da página onde os arquivos estiverem for fixo poderá definí-lo em page_files=''
Como foi o meu caso, não precisei navegar clicando em diferentes menus até chegar no endereço, mas se precisar, também é possível adaptar conforme sua necessidade.
Para permitir realizar o acesso e a navegação pelo navegador através do Selenium se faz necessário baixar chromedriver_win32.zip, lembrando que você deverá baixar para o seu navegador em específico caso não seja o Google Chrome. Para mais informações acesse a documentação do Selenium
a) Acessar o endereço https://chromedriver.chromium.org/downloads e baixar o arquivo conforme a versão do seu browser. Para saber qual a versão baixar é simples, abra o Google Chrome e vá em Configurações > Sobre o Google Chrome
.
b) Descompactar o arquivo chromedriver_win32.zip
c) Copiar o seu conteúdo para dentro da pasta raiz do Python C:\WebScraping-Selenium-Python\selenium_webdriver\
Outro passo importante é criar um path em variáveis de ambiente, também é simples, só seguir os próximos passos.
d) Clicar com botão direito em Este Computador / Meu Computador
e) Clicar em Configurações avançadas do sistema
f) Clicar em Variáveis de Ambiente
g) Selecionar Path e clicar em Editar
h) Clicar em Novo
i) Adicionar o caminho onde colocou o chromedriver.exe
os.path
pathlib
selenium
time
ftplib
sys
os
pyodbc
datetime
bs4
zipfile
pyinstaller
- Acessar o site e realizar o login
- Direcionar até o destino onde estão os arquivos a serem baixados
- Adicionar condição para baixar os arquivos corretos por meio do xPath
- Criar diretório temporário Temp e Duplicados para manipulação dos arquivos
- Validar se a quantidade baixada corresponde a quantidade que foi feito download do site
- Descompactar arquivos .ZIP
- Mover arquivos para a pasta de destino C:\Concessionária\Retorno\
- Registrar log dos arquivos a serem copiados para o servidor
- Copiar arquivos para o servidor
- Realizar também uma cópia para a pasta C:\Concessionária\Retorno\Baixados\
- Excluir arquivos que foram copiados com sucesso da pasta C:\Concessionária\Retorno\
- Adaptar para que seja possível executar para mais de um usuário
- Enviar log via E-mail
Primeiro será necessário instalar a biblioteca PyInstaller que será responsável por gerar esse arquivo .exe:
pip install PyInstaller
Agora, só acessar a raiz de seu projeto e executar o seguinte comando:
pyinstaller --onefile --noconsole automatizacao_edp.py
Se utiliza alguma biblioteca sua ou de terceiros será necessário usar o seguinte comando --paths=../ para gerar o executável.
pyinstaller --onefile --noconsole --paths=../ automatizacao_edp.py
Lembrando que automatizacao_edp.py é o nome do arquivo principal, por isso, é informado na hora de gerar o executável.
Essa automatização se fez necessária com a grande demanda de atividades diárias que foram surgindo, a necessidade de diariamente ter que acessar um determinado site e baixar os arquivos de retorno que não poderiam deixar de serem lidos. Fazer esse processo manualmente acaba expondo a erros e consequentemente no desperdício de recursos. Além disso, conversa diretamente com o clientecentrismo, quando podemos diminuir as falhas e agilizar os processos de baixas de suas mensalidades evitando qualquer desconforto no bloqueio dos serviços.