Automação com PyAutoGUI em Python

0% acharam este documento útil (0 voto)
22 visualizações6 páginas
O documento descreve um processo de automação de tarefas em Python utilizando a biblioteca pyautogui para: 1) acessar um sistema online, 2) fazer login, 3) importar uma base de dados e 4) ca…

Enviado por

Fabrício Irigon

Automação de tarefas em python: código 10887

- Escrever passo a passo em português do processo de execução de forma manual:

1) Acessar o sistema da empresa: (link)

Biblioteca: pyautogui
- pip install pyautogui (do terminal)
- import pyautogui
- import time
- pyautogui.<comando>>

#espera para digitação


[Link] = 0.5(segundo)

- Documentação:
google - pyautogui python

#abrir navegador
[Link]("win")
[Link]("chrome")
[Link]("enter")

#entrar no site
link = "[Link]"
[Link](link)
[Link]("enter")

#dar uma pausa um pouco maior


[Link](3)

2) Fazer login:

++++ [Link] ++++++++++++++


import pyautogui
import time
[Link](5)
print([Link]())
+++++++++++++++++++++++++++++++

[Link](x=714, y=465)
[Link]("seue-mail@[Link]")

#escrever a senha
[Link]("tab")
[Link]("sua senha aqui")

#clicar no botão de logar


[Link](x=952, y=680)
[Link](3)

3) Importar base de dados;

# pip import pandas numpy openpyxl


import pandas
tabela = [Link]("[Link]")
print(tabela)

4) Cadastrar 1 produto;
# para cada linha da minha tabela
for linha in [Link]:
#clicar no 1º campo
[Link](x=709, y=319)
#codigo do produto
codigo = [Link][linha, "codigo"]
[Link](codigo)
[Link]("tab")
#marca
marca = [Link][linha, "marca"]
[Link]("marca")
[Link]("tab")
#tipo
[Link]([Link][linha, "tipo"])
[Link]("tab")
#categoria
# str() string -> texto
# str(1) -> 1 -> "1"
[Link](str([Link][linha, "categoria"]))
[Link]("tab")
#preco
[Link](str([Link][linha, "preco_unitario"]))
[Link]("tab")
#custo
[Link](str([Link][linha, "custo"]))
[Link]("tab")
#obs
obs = [Link][linha, "obs"]
if not [Link](obs):
[Link](obs)
[Link]("tab")
#enviar
[Link]("enter")
[Link](5000)

5) Repetir cadastramento até acabar a base.

=============================================================================
++Jupyter++
Aula 2 - Análise de dados

# Passo a passo do projeto:


# Passo 1: Importar a base de dados de clientes
# Passo 2: Visualizar a base de dados
# Passo 3: Corrigir os problemas da base de dados
# Passo 4: Análise dos cancelamentos
# Passo 5: Análise da causa do cancelamento

#Trabalhar com base de dados -> pandas


#Gráficos e dashboards -> plotly

!pip install pandas numpy openpyxl nb format ipykernel plotly

# Passo 1: Importar a base de dados de clientes


import pandas as pd
tabela = pd.read_csv("cancelamentos_sample.csv")

# Passo 2: Visualizar a base de dados


# colunas inúteis - informações que não te ajudam, te atrapalham
tabela = [Link](columns="CustomerID")
display(tabela)

# Passo 3: Corrigir os problemas da base de dados


# valores vazios - erros de preenchmento
display([Link]())
tabela = [Link]() #excluir linhas NaN

# Passo 4: Análise dos cancelamentos


display(tabela["cancelou"].value_counts())
display(tabela["cancelou"].value_counts(normalize=True)) #percentual
display(tabela["cancelou"].value_counts(normalize=True).map("{:.1%}".format)
#formato percentual

# Passo 5: Análise da causa do cancelamento


import [Link] as px #ver tipos e formas de gráfico - [Link]/python

# criar o gráfico
# para cada coluna da minha tabela
for coluna in [Link]:
grafico = [Link](tabela, x=coluna, color="cancelou")
# exibe o gráfico
[Link]()

Conclusões a partir dos gráficos:


# se um cliente ligar mais de 4x para o call center, ele cancela
#criar um processo de retenção para mais de 3 ligações do mesmo cliente, para
não deixar mais de 20 dias de atraso no pagamento, oferecer descontos nos planos
trimestrais e anuais.

tabela = tabela[tabela["duracao_contrato"]!= "Monthly"] # sem duração do contrato


mensal
tabela = tabela[tabela["ligacoes_callcenter"]<=4] # sem ligação do callcenter acima
de 3 vezes
tabela = tabela[tabela["dias_atraso"]<=20] #sem atraso de pagamento

===================================================================================
====

Aula 3 - Inteligência Artificial - Case de score de crédito dos clientes

# Passo a passo do projeto:


# Passo 0 -> Entender o desafio da empresa
# Passo 1 -> Importar a base de dados
# Passo 2 -> Preparar a base de dados para IA
# Passo 3 -> Criar um modelo de IA -> Score crédito: Bom, Ok , ruim
# Passo 4 -> Escolher o melhor modelo
# Passo 5 -> Usar a nossa IA para fazer novas previsões

Bibliotecas:
pandas -> base de dados
scikit-learn -> IA

# Passo 1 -> Importar a base de dados


import pandas as pd

tabela = [Link]("[Link]")
display(tabela)
display([Link]())
# Good (Bom), Standard(ok), Poor (Ruim)

# Passo 2 -> Preparar a base de dados para IA


# int -> número inteiro
# float -> número com casa decimal
# object -> texto

# Label Encoder - profissao, mix_credito, comportamento_pagamento


# profissão
# Engenheiro -> 1
# Cientista -> 2
# Advogado -> 3
# Artista -> 4
# Mecanico -> 5

# importar o label encoder


from [Link] import LabelEncoder

# criar o label encoder


codificador = LabelEncoder()

# aplicar o label encoder na coluna


tabela["profissao"] = codificador.fit_transform(tabela["profissao"])

# mix_credito
tabela["mix_credito"] = codificador.fit_transform(tabela["mix_credito"])

# comportamento_pagamento
tabela["comportamento_pagamento"] =
codificador.fit_transform(tabela["comportamento_pagamento"])

# 2 divisões
# quem eu quero prever, quem eu quero usar para fazer a previsão
y = tabela["score_credito"]
x = [Link](columns=["score_credito","id_cliente"])

# treino e teste
from sklearn.model_selection import train_test_split

x_treino, x_teste, y_treino, y_teste = train_test_split(x,y, test_size=0.3)

# Passo 3 -> Criar um modelo de IA


# Árvore de Decisão
# KNN -> Vizinhos próximos (Nearest Neighbors)

# importar a IA
from [Link] import RandomForestClassifier
from [Link] import KNeighborsClassifier

# criar a IA
modelo_arvoredecisao = RandomForestClassifier()
modelo_knn = KNeighborsClassifier()

# treina a IA
modelo_arvoredecisao.fit(x_treino, y_treino)
modelo_knn.fit(x_treino, y_treino)
# testar os modelos
previsao_arvoredecisao = modelo_arvoredecisao.predict(x_teste)
previsao_knn = modelo_knn.predict(x_teste)

from [Link] import accuracy_score

print(accuracy_score(y_teste, previsao_arvoredecisao))
print(accuracy_score(y_teste, previsao_knn))

# o melhor modelo é o de árvore de decisão


tabela_nova = [Link]("novos_clientes.csv")
display(tabela_nova)

tabela_nova["profissao"] = codificador.fit_transform(tabela_nova["profissao"])
tabela_nova["mix_credito"] = codificador.fit_transform(tabela_nova["mix_credito"])
tabela_nova["comportamento_pagamento"] =
codificador.fit_transform(tabela_nova["comportamento_pagamento"])

previsoes = modelo_arvoredecisao.predict(tabela_nova)
display(previsoes)

===================================================================================
=====================

Aula 4 - Python Dev: Criação de sites e sistemas com python

# Título: Hashzap
# Botão de iniciar chat
# clicou no botão
# popup / modal
# Título: Bem vindo ao Hashzap
# campo: escreva seu nome no chat
# botão: entrar no chat
# chat
# embaixo do chat
# campo de Digite sua mensagem
# botão de enviar

# flet -> framework do Python


# django
# flask
# pip install flet

import flet as ft # importar

def main(pagina): # criar a função principal/main


texto = [Link]("Hashzap")

chat = [Link]()

def enviar_mensagem_tunel(mensagem):
# adicione a mensagem no chat
texto_mensagem = [Link](mensagem)
[Link](texto_mensagem)
[Link]()

[Link](enviar_mensagem_tunel)

def enviar_mensagem(evento):
print("Enviar mensagem")
[Link].send_all(f"{nome_usuario.value}: {campo_mensagem.value}")
# limpe o campo mensagem
campo_mensagem.value = ""
[Link]()

campo_mensagem = [Link](Label="Digite sua mensagem",


on_submit=enviar_mensagem)
botao_enviar = [Link]("Enviar", on_click=enviar_mensagem)
linha_enviar = [Link]([campo_mensagem, botao_enviar])
def entrar_chat(evento):
print("Entrar no chat")
# fechar o popup
[Link] = false
# tirar o botão iniciar chat
[Link](botao_iniciar)
# tirar o título hashzap
[Link](texto)
# criar o chat
[Link](chat)
[Link].send_all(f"{nome_usuario.value} entrou no chat")
# colocar o campo de digitar mensagem
# criar o botão de enviar
[Link](linha_enviar)
[Link]()

titulo_popup = [Link]("Bem vindo ao Hashzap")


nome_usuario = [Link](Label="Escreva seu nome no chat")
botao_entrar = [Link]("Iniciar Chat", on_click=entrar_chat)
popup = [Link](
open=false,
modal=true,
title=titulo_popup,
content=nome_usuario,
actions=[botao_entrar]
)

def abrir_popup(evento):
[Link] = popup
[Link] = true
[Link]()

botao_iniciar = [Link]("Iniciar Chat", on_click=abrir_popup)

[Link](texto)
[Link](botao_iniciar)

[Link](target=main) # criar o app chamando a função principal

Você também pode gostar