Este script de automação foi projetado para interagir com o portal da Prefeitura de Curitiba e extrair as notas fiscais (NFSe) para os clientes de um escritório de contabilidade. O processo é baseado em uma lista de CNPJs fornecida, e o script navega pelo portal para fazer o download das notas necessárias. Ele utiliza PyAutoGUI para reconhecimento de imagens e Pandas para gerenciar os dados de CNPJs a partir de uma planilha.
⚠️ Observação: Verifique se as imagens necessárias (como o ícone da Lupa e a NFSe) estão disponíveis e corretamente alinhadas para que o processo de automação funcione corretamente.
python
Copy code
import pyautogui
import time
import pandas as pd
import webbrowser
# Função para clicar em uma imagem
def click_image(image_path, confidence=0.8):
location = pyautogui.locateCenterOnScreen(image_path, confidence=confidence)
if location is not None:
pyautogui.click(location)
time.sleep(1) # Espera 1 segundo após cada clique
else:
print(f"Imagem {image_path} não encontrada.")
# Função para mostrar uma mensagem (substitua com a função real show_message)
def show_message():
print("A automação está prestes a começar. Clique em OK para continuar.")
# Carrega a planilha
df = pd.read_excel(r'C:\\Users\\Usuario\\Desktop\\Image\\cnpj.xlsx')
# Atraso inicial para aguardar o carregamento do portal
time.sleep(3)
# Mostrar mensagem para continuar a automação
show_message()
# Loop para processar cada linha da planilha
for index, row in df.iterrows():
# Localiza e clica no ícone da 'Lupa' (busca)
click_image(r'C:\\Users\\Usuario\\Desktop\\Image\\Lupa.png')
# Define o CNPJ e o caminho do arquivo
CNPJ = str(row['CNPJ']) # Convertendo CNPJ para string
caminho = str(row['Caminho']) # Convertendo caminho para string
# Espera e navega usando o PyAutoGUI
time.sleep(1)
pyautogui.press('tab')
time.sleep(1)
pyautogui.typewrite(CNPJ)
time.sleep(1)
pyautogui.press('enter')
time.sleep(2)
# Localiza e clica no ícone da 'NFSe'
click_image(r'C:\\Users\\Usuario\\Desktop\\Image\\NFSe.png')
# Navega pelos campos necessários usando a tecla 'tab'
for _ in range(3):
pyautogui.press('tab')
time.sleep(1)
pyautogui.press('enter')
time.sleep(1)
for _ in range(4):
pyautogui.press('tab')
time.sleep(1)
pyautogui.press('down')
time.sleep(1)
for _ in range(13):
pyautogui.press('tab')
pyautogui.press('enter')
time.sleep(1)
pyautogui.press('tab')
time.sleep(1)
pyautogui.press('enter')
time.sleep(1)
# Digita o caminho do arquivo
pyautogui.typewrite(caminho)
time.sleep(1)
pyautogui.press('tab')
pyautogui.press('enter')
pyautogui.press('enter')
time.sleep(3)
# Voltar para a tela principal do portal
url = '<https://isscuritiba.curitiba.pr.gov.br/iss/Principal/frmFramesPgPrincipal.aspx?sParam=MENSAGEM&sLogin=1>'
webbrowser.open(url)
time.sleep(1)
pyautogui.hotkey('ctrl', 'w')
pyautogui.press('tab')
pyautogui.press('tab')
pyautogui.press('enter')
time.sleep(3)
C:\\Users\\Usuario\\Desktop\\Image\\cnpj.xlsx.