WhatsApp Toplu Mesaj Göndermek

Kodla Büyü

serkan42

Süper Üye
Süper Üye
Seçkin Üye
Mesajlar
1,872
Arkadaşlar selamlar elimde 4000-5000 kadar numara var. bu numaralara Excel ya da Python ile otomatik aynı anda ya da atıyorum 10 saniye aralıklarla mesaj göndermek istiyorum

İnternette bir çok projeyi araştırdım denedim ama bir türlü yapamadım yardımcı olacak arkadaşlar varsa sevinirim
 
Selenium ile Whatsapp Web açıp yapılabilir. Business dahilinde özellik var mı bilmiyorum. Hiç kullanmadım :)
 
telefonlar.png

Yukarıdaki gibi bir excel dosyamızın olduğunu varsayıyoruz. Bu numaralara toplu mesaj göndermek için aşağıdaki selenium kullanarak işimizi çok rahat halledebiliriz.
Python:
import openpyxl
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.by import By
import time

book = openpyxl.load_workbook('liste.xlsx')
sheet1 = book['Sayfa1']


#Eleman kontrol
def kontrol_xpath(Driver: webdriver,xpath):
    try:
        Driver.find_element(By.XPATH,xpath)
    except NoSuchElementException:
        return False
    return True
nolar=[]
toplam=sheet1.max_row+1
for y in range(2,toplam):
    nolar.append(str(sheet1['B'+str(y)].value))

#Firefox Kullanıyorsanız
browser=webdriver.Firefox()

#Chrome kullanıyorsanız
#chromedriver.exe dosyasını kendinize göre ayarlayın
#service = webdriver.ChromeService(executable_path = 'D:/chromedriver.exe')
#browser = webdriver.Chrome(service=service)

browser.get("https://web.whatsapp.com/")
bekle=input('Bağlandı ise enter tuşuna bas: ')
satir=2
for cep in nolar:
    girisYap=browser.find_element(By.XPATH,'/html/body/div[1]/div/div[2]/div[3]/header/div[2]/div/span/div[4]/div/span')
    girisYap.click()
    no=browser.find_element(By.XPATH,'/html/body/div[1]/div/div[2]/div[2]/div[1]/span/div/span/div/div[1]/div[2]/div[2]/div/div[1]')
    no.send_keys('9')
    no.send_keys('0')
    for x in cep:
        no=browser.find_element(By.XPATH,'/html/body/div[1]/div/div[2]/div[2]/div[1]/span/div/span/div/div[1]/div[2]/div[2]/div/div')
        no.send_keys(x)
    time.sleep(2)
    #Numarayı bul ve tıkla
    kayitli=0
    a=0
    while a<1:                        
        if kontrol_xpath(browser,'/html/body/div[1]/div/div[2]/div[2]/div[1]/span/div/span/div/div[2]/div[2]/div[2]/div/div/span'):
            a=2
        #Kayıtlı numara
        elif kontrol_xpath(browser,'/html/body/div[1]/div/div[2]/div[2]/div[1]/span/div/span/div/div[2]/div/div/div/div[2]/div/div/div[2]/div[1]/div/div/span'):
            kayitli=1
            a=2
        time.sleep(1)
        print('Numara bekleniyor...')
    if kayitli==0:
        browser.find_element(By.XPATH,'/html/body/div[1]/div/div[2]/div[2]/div[1]/span/div/span/div/div[2]/div[2]/div[2]/div/div/span').click()
    else:
        browser.find_element(By.XPATH,'/html/body/div[1]/div/div[2]/div[2]/div[1]/span/div/span/div/div[2]/div/div/div/div[2]/div/div/div[2]/div[1]/div/div/span').click()
    time.sleep(3)
    #Mesajı Yaz
    yazi=str(sheet1['C2'].value)
    msj=browser.find_element(By.XPATH,'/html/body/div[1]/div/div[2]/div[4]/div/footer/div[1]/div/span[2]/div/div[2]/div[1]/div/div[1]')
    #MEsajın ilk harfini yazalım
    msj.send_keys(yazi[0])
    #Mesajın geriye kalan kısımlarını yazalım
    for m in yazi[1:]:
        msj=browser.find_element(By.XPATH,'/html/body/div[1]/div/div[2]/div[4]/div/footer/div[1]/div/span[2]/div/div[2]/div[1]/div/div')
        msj.send_keys(m)
    time.sleep(3)
    #Göndere tıkla
    browser.find_element(By.XPATH,'/html/body/div[1]/div/div[2]/div[4]/div/footer/div[1]/div/span[2]/div/div[2]/div[2]/button').click()
    time.sleep(2)
    print(str(sheet1['A'+str(satir)].value),' Kişisine mesaj yollandı.')
    satir+=1
 

Ekli dosyalar

  • toplumesaj.zip
    8.3 KB · Görüntüleme: 26
Ekli dosyayı görüntüle 75559
Yukarıdaki gibi bir excel dosyamızın olduğunu varsayıyoruz. Bu numaralara toplu mesaj göndermek için aşağıdaki selenium kullanarak işimizi çok rahat halledebiliriz.
Python:
import openpyxl
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.by import By
import time

book = openpyxl.load_workbook('liste.xlsx')
sheet1 = book['Sayfa1']


#Eleman kontrol
def kontrol_xpath(Driver: webdriver,xpath):
    try:
        Driver.find_element(By.XPATH,xpath)
    except NoSuchElementException:
        return False
    return True
nolar=[]
toplam=sheet1.max_row+1
for y in range(2,toplam):
    nolar.append(str(sheet1['B'+str(y)].value))

#Firefox Kullanıyorsanız
browser=webdriver.Firefox()

#Chrome kullanıyorsanız
#chromedriver.exe dosyasını kendinize göre ayarlayın
#service = webdriver.ChromeService(executable_path = 'D:/chromedriver.exe')
#browser = webdriver.Chrome(service=service)

browser.get("https://web.whatsapp.com/")
bekle=input('Bağlandı ise enter tuşuna bas: ')
satir=2
for cep in nolar:
    girisYap=browser.find_element(By.XPATH,'/html/body/div[1]/div/div[2]/div[3]/header/div[2]/div/span/div[4]/div/span')
    girisYap.click()
    no=browser.find_element(By.XPATH,'/html/body/div[1]/div/div[2]/div[2]/div[1]/span/div/span/div/div[1]/div[2]/div[2]/div/div[1]')
    no.send_keys('9')
    no.send_keys('0')
    for x in cep:
        no=browser.find_element(By.XPATH,'/html/body/div[1]/div/div[2]/div[2]/div[1]/span/div/span/div/div[1]/div[2]/div[2]/div/div')
        no.send_keys(x)
    time.sleep(2)
    #Numarayı bul ve tıkla
    kayitli=0
    a=0
    while a<1:                       
        if kontrol_xpath(browser,'/html/body/div[1]/div/div[2]/div[2]/div[1]/span/div/span/div/div[2]/div[2]/div[2]/div/div/span'):
            a=2
        #Kayıtlı numara
        elif kontrol_xpath(browser,'/html/body/div[1]/div/div[2]/div[2]/div[1]/span/div/span/div/div[2]/div/div/div/div[2]/div/div/div[2]/div[1]/div/div/span'):
            kayitli=1
            a=2
        time.sleep(1)
        print('Numara bekleniyor...')
    if kayitli==0:
        browser.find_element(By.XPATH,'/html/body/div[1]/div/div[2]/div[2]/div[1]/span/div/span/div/div[2]/div[2]/div[2]/div/div/span').click()
    else:
        browser.find_element(By.XPATH,'/html/body/div[1]/div/div[2]/div[2]/div[1]/span/div/span/div/div[2]/div/div/div/div[2]/div/div/div[2]/div[1]/div/div/span').click()
    time.sleep(3)
    #Mesajı Yaz
    yazi=str(sheet1['C2'].value)
    msj=browser.find_element(By.XPATH,'/html/body/div[1]/div/div[2]/div[4]/div/footer/div[1]/div/span[2]/div/div[2]/div[1]/div/div[1]')
    #MEsajın ilk harfini yazalım
    msj.send_keys(yazi[0])
    #Mesajın geriye kalan kısımlarını yazalım
    for m in yazi[1:]:
        msj=browser.find_element(By.XPATH,'/html/body/div[1]/div/div[2]/div[4]/div/footer/div[1]/div/span[2]/div/div[2]/div[1]/div/div')
        msj.send_keys(m)
    time.sleep(3)
    #Göndere tıkla
    browser.find_element(By.XPATH,'/html/body/div[1]/div/div[2]/div[4]/div/footer/div[1]/div/span[2]/div/div[2]/div[2]/button').click()
    time.sleep(2)
    print(str(sheet1['A'+str(satir)].value),' Kişisine mesaj yollandı.')
    satir+=1
teşekkürler bir deneyeyim
 
Geri
Üst