Este é um script Python que automatiza o envio de mensagens em massa no WhatsApp Web. Aqui está uma descrição breve do código:
-
Importação de módulos: O script importa vários módulos, incluindo
os
,webbrowser
,pyautogui
,logging
,logging.config
,decouple.config
etime
. -
Configuração de logging: O script configura o logging usando um arquivo 'config.ini'.
-
Função
enviar_mensagens_whatsapp_web()
: Esta função é responsável por enviar mensagens no WhatsApp Web.- Primeiro, ela carrega as configurações de contato do arquivo
.env
. - Em seguida, itera sobre todos os contatos no arquivo
.env
que começam com 'CONTATO_'. - Para cada contato, ela abre o WhatsApp Web usando a URL de API do WhatsApp.
- Em seguida, ela usa o módulo
pyautogui
para simular cliques e digitação para enviar a mensagem. - Se ocorrer um erro ao abrir o WhatsApp Web, ele será registrado e um alerta será exibido.
- Por fim, ela aguarda 240 segundos antes de passar para o próximo contato para evitar ser detectada como um bot.
- Primeiro, ela carrega as configurações de contato do arquivo
-
Execução do script: Se o script for executado como o script principal, ele chamará a função
enviar_mensagens_whatsapp_web()
para iniciar o processo de envio de mensagens.
# 202401 - Python 3.12.0
# 4.19 - Projeto 4 - Bot de Envio de mensagem em massa no WhatsApp
import os
import webbrowser
import pyautogui
import logging
import logging.config
from decouple import config
from time import sleep
# configurando logging:
logging.config.fileConfig(fname='config.ini', disable_existing_loggers=False)
logger = logging.getLogger(__name__)
def enviar_mensagens_whatsapp_web():
logging.info('INICIO: Enviando Mensagem WhatsApp.')
# carregar configuracoes
config('CONTATO_01') # Activate loading
# iterar por contatos no arquivo .env
for key, value in os.environ.items():
if key.startswith('CONTATO_'):
contato_numero = value
contato_url = f'https://api.whatsapp.com/send?phone={contato_numero}'
# enviar mensagem
try:
webbrowser.open(contato_url)
sleep(5)
pyautogui.click(1429,338, duration=.5) # "continue to chat"
sleep(3)
pyautogui.click(1429,410, duration=.5) # "use whatsapp web"
sleep(5)
pyautogui.click(1596,980, duration=.5) # "type a message"
sleep(3)
pyautogui.typewrite('Ola programador!') # mensagem
sleep(3)
pyautogui.hotkey('enter') # botao "send"
logging.info('abriu whatsapp e enviou mensagem.')
except webbrowser.Error as e:
logging.error(f'ERRO: ao abrir WhatsApp Web para {contato_numero}:\n- {type(e).__name__}: {e}')
pyautogui.alert(f'ERRO: ao abrir WhatsApp Web para {contato_numero}')
# delay anti-bot
sleep(240)
if __name__ == '__main__':
enviar_mensagens_whatsapp_web()