Voltar para todos os projetos
Capa do projeto Cadastro de Base de Dados Automatizado

Cadastro de Base de Dados Automatizado

PythonPyAutoGuiPandas
Ver no GitHub

O processo de cadastrar milhares de itens manualmente em um sistema web corporativo é uma tarefa exaustiva, de alto custo operacional e extremamente suscetível a erros humanos. Para resolver essa dor, desenvolvi uma solução robusta de RPA (Robotic Process Automation) capaz de operar 24/7 sem supervisão.

Arquitetura e Segurança do Robô

Em um ambiente de produção, não podemos assumir que as planilhas virão perfeitas ou que o sistema nunca vai travar. O grande diferencial deste script é o tratamento preventivo de erros e a segurança da automação:

  • Extração e Higienização: O Pandas lê a base de dados original (.csv/.xlsx) e aplica funções como fillna("") para varrer e limpar dados nulos preventivamente, evitando que o robô digite "NaN" no sistema.
  • Navegação e Inserção Nativa: O PyAutoGUI assume o controle do sistema operacional, desde a abertura do navegador (Chrome) até o preenchimento dos formulários usando mapeamento de coordenadas (x, y) e atalhos de teclado ágeis.
  • Failsafe e Tratamento de Exceções: Implementação de gatilhos de segurança (Kill-switch) que permitem ao usuário abortar o robô instantaneamente ao mover o mouse para os cantos da tela, além de blocos Try/Except para evitar crashes não documentados.

Demonstração do script lendo a planilha e executando o cadastro em massa.

Lógica Central e Modularização

Na automação de interfaces gráficas, o segredo da estabilidade está em não confiar na velocidade do sistema alvo. O código foi modularizado em funções isoladas e estruturado com pausas estratégicas (time.sleep e pyautogui.PAUSE) para garantir que o script não dessincronize do carregamento da página web.

rpa_cadastro.py
def abrir_navegador_e_logar(email, senha):    print('Iniciando processo de login...')    pyautogui.PAUSE = 0.5    pyautogui.press('win')    pyautogui.write('Chrome')    pyautogui.press('enter')    # ... lógica de login def carregar_e_limpar_dados(caminho_arquivo):    df = pd.read_csv(caminho_arquivo)    df = df.fillna('')    return df def executar_cadastro_em_massa(tabela):    pyautogui.PAUSE = 0.05        for index, linha in tabela.iterrows():        pyautogui.click(x=1288, y=241)        # ... rotina de preenchimento

Destaques da Automação (RPA)

  • Controle de Delay DinâmicoUso do `pyautogui.PAUSE` ajustável. Tempos maiores (0.5s) garantem que o SO responda, enquanto tempos curtos (0.05s) aceleram o preenchimento em massa.
  • Tratamento de Dados (Pandas)A aplicação do método `fillna('')` logo após a leitura do CSV é crucial para evitar quebras de digitação quando campos opcionais vêm vazios (NaN).
  • Iteração OtimizadaUtilização do `iterrows()`, a maneira mais segura e pythônica de percorrer as linhas de um DataFrame do Pandas iterando sobre cada registro.
  • Mapeamento de CoordenadasComo ferramentas RPA dependem de resolução de tela, os cliques `(x=1288, y=241)` são mapeados previamente por uma função utilitária auxiliar.