Blog

Postado em em 28 de abril de 2022

Automação do WhatsApp com BotCity – Automação em Python

Hoje nós vamos fazer uma automação do WhatsApp com BotCity que é uma ferramenta de automação que utiliza imagens no 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 receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:

Automação no WhatsApp com Python

Aqui no blog nós já mostramos uma automação de WhatsApp, mas hoje vamos fazer uma automação com BotCity que é uma ferramenta de automação no Python.

E aí está curioso para aprender como fazer essa automação com Python no WhatsApp para enviar suas mensagens ou arquivos?

Como Criar Automação com Python

Antes de iniciar é importante informar que o WhatsApp não gosta de automações, então se for fazer alguma automação faça coisas pequenas e simples.

Então evite fazer coisas que deem volume para a plataforma para que não tenha o seu número bloqueado por conta disso.

O objetivo da aula é te mostrar que isso é possível, agora o que você vai fazer ou quais as automações você pretende fazer é por sua conta. Está avisado que pode tomar bloqueio por conta disso!

Para não deixar o post muito grande e repetir um conteúdo que já ensinamos você pode baixar o arquivo disponível para download, onde temos uma cartilha que vai te explicar o passo a passo das configurações do BotCity.

Temos também um outro post onde já mostramos como fazer essas configurações aqui, então você pode acessar esse post clicando aqui caso prefira.

Nós vamos criar uma automação de Desktop, ou seja, vamos criar um DesktopBot. Aqui nós vamos partir de um projeto já criado e vinculado ao BotStudio.

Antes de começar é importante que o arquivo de contatos (que também está disponível para download) esteja na mesma pasta do seu código.

O arquivo.txt não precisa necessariamente estar na mesma pasta, pois vamos passar o caminho do arquivo na hora de enviá-lo.

from botcity.core import DesktopBot
# Uncomment the line below for integrations with BotMaestro
# Using the Maestro SDK
# from botcity.maestro import *
import pandas as pd

class Bot(DesktopBot):
    def action(self, execution=None):

        # Opens the Whatsapp website.
        self.browse("http://web.whatsapp.com")

        # importar a base de dados
        tabela = pd.read_excel("Contatos.xlsx")
        print(tabela)
        # para cada linha da base de dados
        for linha in tabela.index:

            contato = tabela.loc[linha, "Contato"]
            msg = tabela.loc[linha, "Msg"]
            arquivo = tabela.loc[linha, "Arquivo"]

            if not self.find( "lupa", matching=0.97, waiting_time=60000):
                self.not_found("lupa")
            self.click()

            self.type_keys_with_interval(100, contato)
            self.enter()

            if pd.isna(arquivo): # tem arquivo
                self.paste(msg)
                self.enter()
            else:
                self.paste(msg)
                self.enter()
                if not self.find( "anexar", matching=0.97, waiting_time=10000):
                    self.not_found("anexar")
                self.click()
                if not self.find( "documento", matching=0.97, waiting_time=10000):
                    self.not_found("documento")
                self.click()
                if not self.find( "nome", matching=0.97, waiting_time=10000):
                    self.not_found("nome")
                self.paste(arquivo)
                self.enter()
                if not self.find( "enviar", matching=0.97, waiting_time=10000):
                    self.not_found("enviar")
                self.click()
                

            if self.find( "seta", matching=0.97, waiting_time=10000):
                self.click()

            self.wait(2000)
        
        
    def not_found(self, label):
        print(f"Element not found: {label}")


if __name__ == '__main__':
    Bot.main()

Esse é o código que vamos utilizar, mas lembre-se de que algumas linhas de código são geradas automaticamente através do BotStudio quanto tiramos o print e selecionamos qual elemento queremos dessa imagem.

Então alguns dos nomes foram dados dentro do próprio BotStudio para facilitar o entendimento do código.

O código é bem tranquilo de ser entendido, então o primeiro passo é abrir o site do WhatsApp e em seguida importar o nosso arquivo de contatos.

Como queremos passar uma mensagem para todos os contados da nossa lista vamos utilizar a estrutura de repetição for.

Lista de contatos com mensagens e arquivos
Lista de contatos com mensagens e arquivos

Então dentro do site do WhatsApp nós vamos buscar a lupa para começar a inserir o nome do primeiro contato.

Depois vamos fazer uma verificação se o arquivo está vazio, se estiver vamos simplesmente colar a mensagem e pressionar enter para e enviá-la.

Agora se o arquivo não estiver vazio quer dizer que ele existe, então vamos fazer o passo a passo para anexar o arquivo, igual você faz de forma manual mesmo.

Então você vai clicar no anexo, depois clicar em documento, esperar a janela abrir, escrever o caminho do arquivo, clicar em enter e por fim clicar no botão de enviar.

Esse é o passo a passo padrão que você manualmente, só que vai fazer dentro do BotStudio para ir encontrando os elementos que precisa para clicar e escrever o nome do arquivo.

Com isso tudo pronto a sua automação está completa, basta alterar o nome dos contatos e conteúdo da mensagem ou o arquivo que vai enviar no arquivo de Excel que tem essas informações.

Com isso vai poder fazer sua automação para WhatsApp com Python para todos os contatos que tiver na sua lista.

IMPORTANTE: Novamente vale lembrar que o WhatsApp não gosta de automações, então tome cuidado para não tomar um bloqueio no seu número.

Conclusão da Automação do WhatsApp com BotCity

Nessa aula eu te mostrei como fazer o envio automático de mensagens no WhatsApp utilizando o Python.

Essa é uma automação que pode facilitar alguns trabalhos, mas lembre-se de que o WhatsApp não gosta de automações, então tome cuidado ao fazer suas automações para não ter o número bloqueado.

Hashtag Treinamentos

Para acessar outras publicações de Python, clique aqui!


Quer aprender mais sobre Python com um minicurso gratuito?


Quer sair do zero no Power BI e virar uma referência na sua empresa? Inscreva-se agora mesmo no Power BI Impressionador