Jump to content
tiagoban

Whatsapp em python

Recommended Posts

Estou testando o envio de mensagem para whatsapp via Python, queria testar enviar imagem tambem, porem nao sei qual o codigo usar, alguem sabe como proceder?

Segue o codigo utilizado até o momento.

 

from time import sleep
from selenium.webdriver.common.by import By
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait
import socket

client = Client()

message_text='Oi, esta é uma mensagem automatica criada.' # message
no_of_message=1 # no. of time
moblie_no_list=[554899999999] # list of phone number

def element_presence(by,xpath,time):
    element_present = EC.presence_of_element_located((By.XPATH, xpath))
    WebDriverWait(driver, time).until(element_present)

def is_connected():
    try:
        # connect to the host -- tells us if the host is actually
        # reachable
        socket.create_connection(("www.google.com", 80))
        return True
    except :
        is_connected()
driver = webdriver.Chrome(executable_path="chromedriver.exe")
driver.get("http://web.whatsapp.com")
sleep(10) #wait time to scan the code in second

def send_whatsapp_msg(phone_no,text):
    driver.get("https://web.whatsapp.com/send?phone={}&source=&data=#".format(phone_no))
    try:
        driver.switch_to_alert().accept()
    except Exception as e:
        pass

    try:
        element_presence(By.XPATH,'//*[@id="main"]/footer/div[1]/div[2]/div/div[2]',30)
        txt_box=driver.find_element(By.XPATH , '//*[@id="main"]/footer/div[1]/div[2]/div/div[2]')
        global no_of_message
        for x in range(no_of_message):
            txt_box.send_keys(text)
            txt_box.send_keys("\n")

    except Exception as e:
        print("invailid phone no :"+str(phone_no))
for moblie_no in moblie_no_list:
    try:
        send_whatsapp_msg(moblie_no,message_text)

    except Exception as e:
        sleep(10)
        is_connected()

Share this post


Link to post
Share on other sites

Veja, se para fazer o envio o programa usa as leituras de XPATH do navegador via selenium, você precisará encontrar os XPATHs referentes ao envio da mensagem.

 

Faça simulações!

Pegue o fluxo dos seus cliques "humanizados" e então crie o fluxo "automatizado" via selenium!

 

1º passo

Abrir janela de conversa

 

2º passo

Clicar no icone de clips para abrir opções de anexos

 

3º passo

Clicar no icone de adicionar midia

 

4º passo

Buscar o local da imagem

 

5º passo

Adicionar uma legenda (ou nao) a foto e então clicar para enviar

 

Você terá que encontrar todos os XPATHs para esses processos.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Tr3eet
      Galera bom dia. 
       
      Estou tentando ler arquivos em PDF, com o Python, preciso abrir um arquivo em PDF e preciso que ele me retorne uma linha somente em especifico. Com os arquivos .txt consegui realizar sem problemas ele me trouxe perfeito, agora em PDF não estou conseguindo, já tentei com o modulo PyPDF2 porem não obtive exito, alguém pode me dar algumas dicas ?:
       
      Obrigado
    • By samuel.huarachi
      Tenho o seguinte problema

      Uma aplicacao web, que acessa a camera do celular do usuario, e coloca uma mascara  no rosto, tipo um óculos, chapeu, bigode etc

      Dei uma pesquisa e encontrei a biblioteca opencv, mas nao sei se ela funciona em aplicacao web, e se ela acessa a webcam do usuario.

      Se alguem puder me dar um norte eu agradeço
    • By Motta
      TRF reduz valor de multa a Facebook e WhatsApp de R$2 bi para R$23 mi
    • By dhebryhan
      #importar a biblioteca
      import pymysql
      #conexao com banco de dados
      conexao = pymysql.connect(
          host    = "localhost",
          user    = "root",
          passwd  = "123456",
          db      = "dbMegasena"
      )

      cursor = conexao.cursor()
      #gerando combinacoes dos numeros
      for dez1 in range(60):
          for dez2 in range(dez1+1,60):
              for dez3 in range(dez2+1,60):
                  for dez4 in range(dez3+1,60):
                      for dez5 in range(dez4+1,60):
                          for dez6 in range(dez5+1,60):
                             #total += 1
                              sql_data = (dez1 + 1, dez2 + 1, dez3 + 1, dez4 + 1, dez5 + 1, dez6 + 1)
                              sql = "INSERT INTO combinacoesMega (bola01, bola02, bola03, bola04, bola05, bola06) VALUES(?, ?, ?, ?, ?, ?)"
                              cursor.execute(sql, sql_data)
    • By Tuzzolino
      Boa tarde gente,
       
       
      Estou fazendo  um site  e  na hora que eu vou compartilhar ele no whatsapp  ele tá pegando o link corretamente mas ao invés de aparecer o titulo aparece somente o description  e não pega a miniatura da imagem  alguém tem algum exemplo de como  deveria ser ?
       
       
      A  imagem  é carregada assim 
       
      <amp-img height="320" width="470" id="img" src="890x610.jpg" layout="responsive" class="i-amphtml-element i-amphtml-layout-responsive i-amphtml-layout-size-defined i-amphtml-layout" i-amphtml-layout="responsive"><i-amphtml-sizer style="padding-top: 68.0851%;"></i-amphtml-sizer><img decoding="async" amp-img-id="img" src="890x610.jpg" class="i-amphtml-fill-content i-amphtml-replaced-content"></amp-img>  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.