Envio Automático de Mensagem no WhatsApp Usando o Python
Hoje eu vou te mostrar o envio automático de mensagem no WhatsApp de uma forma completa utilizando o Python!
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!
Para fazer o download do(s) arquivo(s) utilizados na aula, preencha com o seu e-mail:
Não vamos te encaminhar nenhum tipo de SPAM! A Hashtag Treinamentos é uma empresa preocupada com a proteção de seus dados e realiza o tratamento de acordo com a Lei Geral de Proteção de Dados (Lei n. 13.709/18). Qualquer dúvida, nos contate.
O que você vai aprender?
Envio Automático de Mensagem no WhatsApp
Você provavelmente já precisou enviar mensagem com Python para deixar sua automação mais completa não é mesmo?
A ideia da aula de hoje é te mostrar como enviar mensagens com anexo no WhatsApp além das mensagens comuns!
Envio de Mensagens com Python
Antes de iniciar a aula é importante ressaltar que o WhatsApp não gosta de automações que não sejam com a sua própria API.
Então é importante que você tome cuidado com o que está fazendo, nós estamos apenas ensinando como fazer essa automação, mas como você vai usar é responsabilidade sua.
É possível até que tenha seu número bloqueado dependendo de como você utilizar essa automação com Python.
Outro ponto importante é que nessa aula nós vamos utilizar o Selenium, então é importante que já tenha um conhecimento sobre a ferramenta.
Caso ainda não saiba o que é ou não tem muito conhecimento basta clicar aqui que temos um post falando mais sobre ele e mostrando as configurações.

Aqui temos alguns cuidados que você precisa tomar, já falamos sobre isso, mas é sempre bom relembrar, pois pode gerar problemas para quem está utilizando.
Para construir esse código de envios com Python integrando com WhatsApp nós vamos utilizar 3 blocos de códigos.
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
import time
navegador = webdriver.Chrome()
navegador.get("https://web.whatsapp.com")
# esperar a tela do whatsapp carregar
while len(navegador.find_elements(By.ID, 'side')) < 1: # -> lista for vazia -> que o elemento não existe ainda
time.sleep(1)
time.sleep(2) # só uma garantiaNesse primeiro código vamos fazer a importação das bibliotecas que serão utilizadas, depois vamos abrir o navegador, vamos abrir o site do whatsapp web.
Em seguida temos 2 pontos importantes, iniciando a estrutura de repetição while, para garantir que a tela do WhatsApp web carregou.
Aqui estamos procurando a lista lateral onde você tem seus contados, então se ela não estiver lá é porque a página ainda não carregou.
IMPORTANTE: Isso quer dizer que aqui você vai ter tempo suficiente para poder utilizar o QR Code para abrir o seu WhatsApp, já que por padrão o navegador que é aberto não tem suas informações gravadas.
Vamos agora para o segundo bloco de código!
# o whatsapp já carregou
import pandas as pd
tabela = pd.read_excel("Envios.xlsx")
display(tabela[['nome', 'mensagem', 'arquivo']]) # tem também uma coluna telefone dentro da tabelaEssa parte é após o WhatsApp carregar, ou seja, após você ler o QR Code para abrir o seu WhatsApp no computador.
Aqui vamos utilizar a biblioteca pandas para abrir o nosso arquivo Envios.xlsx que contém os nomes, as mensagens, os anexos e os números de telefones para quais vamos automatizar as mensagens.

Aqui você vai poder colocar o nome dos seus contatos, pode personalizar a mensagem que será enviada.
Já na coluna arquivo, se você não tiver nenhum anexo a ser enviado pode deixar o N, caso contrário pode colocar o nome do arquivo já com a extensão do arquivo.

Então dentro do código vamos ter a visualização dessas informações para que possamos utilizá-las para o envio das mensagens.
Agora vamos para o último bloco de código, que é o bloco onde de fato vamos fazer os envios de mensagens e anexos!
import urllib
import time
import os
for linha in tabela.index:
# enviar uma mensagem para a pessoa
nome = tabela.loc[linha, "nome"]
mensagem = tabela.loc[linha, "mensagem"]
arquivo = tabela.loc[linha, "arquivo"]
telefone = tabela.loc[linha, "telefone"]
texto = mensagem.replace("fulano", nome)
texto = urllib.parse.quote(texto)
# enviar a mensagem
link = f"https://web.whatsapp.com/send?phone={telefone}&text={texto}"
navegador.get(link)
# esperar a tela do whatsapp carregar -> espera um elemento que só existe na tela já carregada aparecer
while len(navegador.find_elements(By.ID, 'side')) < 1: # -> lista for vazia -> que o elemento não existe ainda
time.sleep(1)
time.sleep(2) # só uma garantia
# você tem que verificar se o número é inválido
if len(navegador.find_elements(By.XPATH, '//*[@id="app"]/div/span[2]/div/span/div/div/div/div/div/div[1]')) < 1:
# enviar a mensagem
navegador.find_element(By.XPATH, '//*[@id="main"]/footer/div[1]/div/span[2]/div/div[2]/div[2]/button/span').click()
if arquivo != "N":
caminho_completo = os.path.abspath(f"arquivos/{arquivo}")
navegador.find_element(By.XPATH,
'//*[@id="main"]/footer/div[1]/div/span[2]/div/div[1]/div[2]/div/div/span').click()
navegador.find_element(By.XPATH,
'//*[@id="main"]/footer/div[1]/div/span[2]/div/div[1]/div[2]/div/span/div/div/ul/li[4]/button/input').send_keys(caminho_completo)
time.sleep(2)
navegador.find_element(By.XPATH,
'//*[@id="app"]/div/div/div[2]/div[2]/span/div/span/div/div/div[2]/div/div[2]/div[2]/div/div').click()
time.sleep(5)Inicialmente vamos fazer a importação das bibliotecas, em seguida vamos utilizar a estrutura de repetição for para que o nosso código seja repetido para todas as informações da nossa tabela.
Isso quer dizer que se tivermos 5 nomes o código será repetido 5 vezes, então independente da quantidade que colocar o código será repetido quantas vezes forem necessárias para fazer todos os envios.
IMPORTANTE: Novamente é bom tomar cuidado para quantas pessoas você faz esse envio automático para evitar com que você tome bloqueio no seu WhatsApp.
Depois de iniciar a nossa estrutura de repetição nós vamos armazenar as informações do nosso primeiro contato dentro das variáveis nome, mensagem, arquivo e telefone.
Em seguida nós temos a substituição do nome “fulano” na nossa mensagem para que você não tenha que ficar escrevendo manualmente o nome de cada pessoa.
Então dentro da mensagem nós temos fulano e no código vamos substituir esse texto pelo nome de cada contato.
Feito isso vamos fazer a criação do link, que nesse caso vamos utilizar o modelo do link abaixo:
link = f"https://web.whatsapp.com/send?phone={telefone}&text={texto}"
Com esse modelo de link nós vamos conseguir abrir uma página do WhatsApp Web na conversa com o contato com base no telefone, e já vamos ter o texto escrito!

Então a mensagem já fica escrita na sua caixa de texto, só faltando fazer o envio.
Sabendo disso nós podemos começar com a estrutura para o envio das mensagens. Vamos abrir o link já com as informações do contato.
OBS: Aqui novamente vamos esperar para que o WhatsApp carregue para que o código funcione normalmente.
Em seguida nós vamos verificar se o número é inválido ou não, pois quando o número é inválido o WhatsApp vai retornar uma espécie de erro.

Então vamos verificar com o xpath se temos esse elemento aparecendo, se encontrar é porque o número é inválido, caso contrário é um número válido e podemos enviar a mensagem.
OBS: Se você ainda não sabe como pegar o xpath de um elemento, que nada mais é do que o caminho (endereço) desse elemento, basta dar uma olhada rápida nesse nosso outro post para que você consiga buscar esse caminho, pois se estiver utilizando um navegador diferente é possível que tenha alguma diferença nesse caminho.
Feita essa verificação e o envio da mensagem de texto nós vamos verificar se a coluna de arquivo é diferente de N para saber se temos ou não um anexo a ser enviado.
Caso a coluna seja igual a N é porque não temos anexo então não temos mais nada a fazer. Vamos partir para o próximo contato.
Agora se o arquivo for diferente de N nós vamos utilizar novamente o xpath para encontrar e depois clicar nos botões para anexar o arquivo.
Então vamos clicar no botão de anexo, depois clicar no botão de arquivo (dentro das opções de anexo).
Depois nós vamos colocar o nome do arquivo dentro da caixa do nome do arquivo, assim não precisamos buscar o arquivo, então já podemos colocá-lo com o caminho completo.
Que nesse caso é a pasta arquivo + o nome do arquivo, pois temos essa pasta dentro da mesma pasta do nosso código.
Por fim vamos clicar no botão de enviar, pois até o momento o arquivo está na tela do WhatsApp pronto para ser enviado.
Pronto! Agora você já consegue enviar mensagens automáticas pelo WhatsApp com Python inclusive mensagens com anexo!
Conclusão - Envio Automático de Mensagem no WhatsApp
Nessa aula eu te mostrei como fazer o envio de mensagens pelo WhatsApp com Python de forma automática.
Você pode fazer o envio de mensagens de texto e ainda pode incluir anexos caso precise. Agora já pode criar sua lista de contatos para os quais vai enviar as mensagens e disparar de forma automática para todos eles.
Só tome cuidado como vai fazer o uso dessa automação, pois o WhatsApp não gosta de automações que não seja a dele, então use com sabedoria para não ter seu número bloqueado.
Hashtag Treinamentos
Para acessar outras publicações de Python, clique aqui!
Posts mais recentes de Python
- Curso Básico de Python: Saia do Zero em 10 Aulas GrátisAprenda com o curso básico de Python gratuito da Hashtag: 10 aulas práticas, exercícios e projetos reais para sair do zero em programação.
- Agentes RAG com Python: como criar um assistente de IAAprenda a criar Agentes RAG com Python do zero: LangChain, FAISS e OpenAI para montar um assistente de IA que responde com base nos seus documentos.
- 25 Tipos de Gráficos em Python: Guia Completo com CódigoAprenda a criar os principais tipos de gráficos em Python com Plotly: barras, pizza, mapas e mais, com código pronto para copiar e usar.
Posts mais recentes da Hashtag Treinamentos
- Planilha de Controle de Notas Fiscais no Excel [Grátis]Baixe a planilha de controle de notas fiscais no Excel grátis: calcule ISS e retenções, veja o que está em aberto e gere a cobrança de cada nota de serviço.
- Qual IA usar na empresa: ChatGPT, Claude ou Perplexity?Qual IA usar na empresa: veja as diferenças entre ChatGPT, Claude e Perplexity e quando cada um rende mais em cada área da sua equipe.
- Apostilas Gratuitas em PDF: Excel, Power BI, Python e IABaixe apostilas gratuitas em PDF de Excel, Power BI, Python, Claude e agentes de IA, com exercícios e gabarito. Escolha a sua e comece hoje.








