Projeto Base: Automação para Download de Artigos Acadêmicos (RPA com Python)
Visão Geral do Projeto
Este projeto consiste em um script de automação (RPA - Robotic Process Automation) desenvolvido em Python com o objetivo de otimizar a busca e o download de artigos científicos. O bot lê identificadores de artigos (como DOIs), controla o computador para acessar a base do Sci-Hub de forma automatizada, realiza o download do documento em PDF e, ao final, gera um relatório detalhado (log) informando o status de cada tentativa (sucesso ou falha).
O Problema
Pesquisadores e estudantes frequentemente gastam muito tempo realizando buscas manuais, copiando links e baixando PDFs um a um. Além disso, quando se trata de uma grande quantidade de referências bibliográficas, o controle do que já foi baixado ou do que apresentou erro de acesso torna-se caótico e suscetível a falhas.
A Solução
Para resolver essa dor, criei um robô que:
- Lê uma base de dados (planilha) contendo a lista de artigos a serem buscados.
- Assume o controle do mouse e teclado para navegar automaticamente até o site de busca.
- Realiza a pesquisa e comanda o download do arquivo PDF (quando disponível).
- Localiza o arquivo recém-baixado no computador e o organiza em um diretório específico.
- Registra toda a operação atualizando a planilha com o status final (
sucessooufalha), permitindo uma auditoria fácil ao final do processo.
Tecnologias e Bibliotecas Utilizadas
- Linguagem: Python 3.x
- Bibliotecas Principais:
pandas: Utilizada para a ingestão dos dados de entrada (lista de artigos) e para a estruturação e exportação do log final com os resultados da automação.pyautogui: Responsável por toda a interação com a interface gráfica do sistema (RPA), simulando cliques de mouse, digitação de texto e atalhos de teclado no navegador.os: Para interagir com o sistema operacional, criar pastas de destino e renomear ou mover os arquivos baixados.glob: Utilizada em conjunto com a bibliotecaospara buscar e identificar dinamicamente os arquivos PDF mais recentes na pasta de downloads.time: Essencial para o gerenciamento de pausas (sleep) e sincronização do script, garantindo que o robô aguarde o carregamento das páginas web e a conclusão dos downloads antes de seguir para o próximo passo.
Principais Desafios e Aprendizados
- Sincronização de Interface e Tempos de Resposta: Um dos maiores desafios ao usar o
pyautoguié lidar com as variações de tempo de carregamento da internet. Aprendi a estruturar o código usando a bibliotecatimepara criar pausas estratégicas, evitando que o robô tentasse clicar em elementos antes deles aparecerem na tela. - Manipulação e Rastreio de Arquivos: Quando baixamos vários arquivos, gerenciar para onde eles vão é complexo. O uso combinado de
oseglobme ensinou a varrer diretórios (como a pasta de Downloads padrão) para capturar dinamicamente o último PDF modificado, garantindo que o artigo certo fosse movido para a pasta final do projeto. - Geração de Logs Integrada: A experiência de consolidar os resultados lendo e escrevendo DataFrames com o
pandasdemonstrou a importância de manter o controle sobre processos em lote. Agora é possível saber exatamente quais artigos falharam para uma possível intervenção manual.
Disclaimer (Aviso Ético/Legal)
Este projeto foi desenvolvido com propósitos estritamente educacionais e de estudo prático sobre Automação de Processos (RPA), manipulação de interfaces gráficas e gestão de arquivos com Python. É importante sempre verificar os termos de uso e os direitos autorais dos sites acessados via scripts automatizados.
https://github.com/maebc/Economizando-com-Python



