
Cadastro de Base de Dados Automatizado
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
Pandaslê a base de dados original (.csv/.xlsx) e aplica funções comofillna("")para varrer e limpar dados nulos preventivamente, evitando que o robô digite "NaN" no sistema. - Navegação e Inserção Nativa: O
PyAutoGUIassume 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/Exceptpara 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.
def abrir_navegador_e_logar(email, senha):print('Iniciando processo de login...')pyautogui.PAUSE = 0.5pyautogui.press('win')pyautogui.write('Chrome')pyautogui.press('enter')# ... lógica de logindef carregar_e_limpar_dados(caminho_arquivo):df = pd.read_csv(caminho_arquivo)df = df.fillna('')return dfdef executar_cadastro_em_massa(tabela):pyautogui.PAUSE = 0.05for 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.