Automatizando o envio de mensagens no WhatsApp com o Python
Inaugurando um texto sobre uma linguagem que gosto e uso bastante: o Python.
Nesse artigo pretendo mostrar como é fácil criar um código que automatiza o envio de mensagens para dezenas, centenas ou milhares de pessoas por meio do WhatsApp integrado ao Python. Para realizar essa tarefa tudo o que é necessário é um banco de dados com o número de telefone dos indivíduos e a mensagem que se deseja enviar.
Então, bora lá!
Utilizando o Jupyter Notebook e instalando as bibliotecas
O local de trabalho escolhido é o Jupyter Notebook. Você pode utilizá-lo baixando o Anaconda Navegator. Depois de baixar, instalar e carregar o Anaconda, basta clicar no botão “launch” do Jupyter.
Uma vez que você já tem seu notebook carregado e pronto para uso, é preciso instalar as bibliotecas necessárias para a tarefa, são elas: Pandas, webbrowser, pyautogui e time. Algumas dessas bibliotecas já vem instaladas com o Anaconda, mas, caso seja preciso instalar alguma, isso poderá ser feito diretamente pelo notebook:
Com todas as bibliotecas instaladas, o próximo passo é importá-las:
Carregando um banco de dados local
Com o ambiente pronto para uso, agora é só começar a trabalhar com a base de dados. Para carregar um csv do próprio computador é preciso informar o caminho para esse arquivo (C:\\Users\\…) ou simplesmente colocá-lo dentro da pasta que está o notebook, essa segunda opção costuma ser mais prática por manter todos os arquivos do trabalho dentro de uma única pasta. Para carregar o arquivo, farei uso do queridinho do Python, o Pandas:
O csv tem essa cara:
Duas colunas são de extrema importância para realizar a tarefa de automatizar o processo de envio de mensagens:
1. Uma coluna com o número do indivíduo; que precisa estar com o código do país (o do Brasil é 55), seguido por um “_”, o DDD (no exemplo é 71) e, por fim, o número (atente-se a necessidade do nono dígito para algumas localidades).
A coluna com o número precisa então ter essa cara: 55_71912345678.
2. Uma coluna com a mensagem. A mensagem pode ser genérica, conter informações de outras colunas (leia o próximo item) através da função “CONCATENAR” do Excel, etc.
3. OPCIONAL: No dataset de exemplo, as colunas com nome (firstname) e sobrenome (lastname) dos indivíduos foram utilizadas para montar uma mensagem personalizada.
Disparando mensagens
Agora vem a parte principal: o envio das mensagens. Três bibliotecas vão realizar essa tarefa: o time, webbrowser e o pyautogui.
Vamos à explicação de cada uma delas:
A finalidade do time é inserir uma janela de tempo para o código rodar o passo a passo, isso serve para duas coisas: 1) Evitar que o envio seja detectado como um bot e 2) Evitar problemas de execução do código em computadores menos potentes.
O pyautogui vai automatizar todo o processo de envio das mensagens para os números presentes no banco de dados e o webbrowser vai abrir a URL que está presente no código (o WhatsApp Web).
O código vai ter essa cara:
Em linhas gerais, o que o código faz é:
- Abrir o WhatsApp Web em um número do dataset.
- Inserir a mensagem.
- Apertar a tecla “esc” (isso é necessário porque caso a mensagem contenha algum link, o WhatsApp vai abrir uma box e isso atrapalha a execução do restante do código. A tecla “esc” fecha essa box, mas mantêm o link, dessa forma o resto do código funciona normalmente).
- Enviar a mensagem (Por meio da tecla “enter”).
- Fechar a janela do WhatsApp Web (crtl + w).
- Reiniciar o processo para o próximo número no dataset.
Conclusão
Essa é uma série de 3 artigos tratando da integração Python + WhatsApp, onde esse foi o primeiro artigo. No próximo, meu colega Jonatas Silva vai mostrar como é possível acessar um banco de dados no MySQL/LimeSurvey para fazer envio de mensagens, o link para o artigo dele vai ser colocado aqui assim que for publicado. No terceiro e último artigo da série, vou mostrar como fazer a integração com o Google forms.
O notebook completo pode ser acessado no meu Github.