Python İle Pywhatkit Kütüphanesi Kullanarak Whatsapp Otomasyonu Nasıl Yapılır?

Python İle Pywhatkit Kütüphanesi Kullanarak Whatsapp Otomasyonu Nasıl Yapılır?
Python İle Pywhatkit Kütüphanesi Kullanarak Whatsapp Otomasyonu Nasıl Yapılır?

Gereksinimler ve Ön Hazırlık

Projeye başlamadan önce geliştirme ortamınızın hazır olduğundan emin olmalısınız. Pywhatkit, arka planda tarayıcıyı kontrol etmek için pyautogui ve webbrowser modüllerini kullanır. Bu nedenle sisteminizde güncel bir Python sürümü (3.9 ve üzeri önerilir) kurulu olmalıdır.

Kurulum için terminal veya komut istemcisini açarak aşağıdaki komutu çalıştırmanız yeterlidir:

pip install pywhatkit

Kurulum tamamlandıktan sonra, kütüphanenin doğru çalışması için bilgisayarınızda varsayılan bir web tarayıcısının (Chrome önerilir) yüklü olması ve Whatsapp Web oturumunun tarayıcıda açık olması gerekmektedir. Aksi takdirde kütüphane, oturum açma sayfasında takılı kalabilir.

Pywhatkit ile İlk Mesaj Gönderimi

Pywhatkit'in en temel işlevi, belirli bir telefon numarasına, belirlenen bir saatte mesaj göndermektir. Bu işlem, sendwhatmsg fonksiyonu ile gerçekleştirilir. Fonksiyon; telefon numarası, mesaj içeriği, saat ve dakika parametrelerini zorunlu olarak alır.

import pywhatkit

# Telefon numarası başında ülke kodu ile girilmelidir
telefon_no = "+905XXXXXXXXXX"
mesaj = "Merhaba, bu bir Python otomasyon test mesajıdır."

# 15:30'da mesaj gönder
pywhatkit.sendwhatmsg(telefon_no, mesaj, 15, 30)

Bu kod bloğunda, sendwhatmsg fonksiyonu belirtilen saatten birkaç saniye önce tarayıcıyı açar ve mesajı gönderir. Dikkat etmeniz gereken en önemli nokta, zaman parametrelerinin 24 saatlik formatta olması gerektiğidir.

Kritik Uyarı: Otomasyon işlemlerinde telefon numaralarını her zaman uluslararası formatta (+90...) girin. Yanlış format, kütüphanenin hedef kullanıcıyı bulamamasına ve işlemin başarısız olmasına neden olur.

Anında Mesaj Gönderme Yöntemi

Bazen mesajın belirli bir saatte değil, kod çalıştırıldığı anda gönderilmesi istenir. Bunun için sendwhatmsg_instantly fonksiyonu kullanılır. Bu fonksiyon, mesajı mümkün olan en kısa sürede gönderir ancak arayüzün yüklenmesi için kısa bir bekleme süresine ihtiyaç duyar.

import pywhatkit

telefon_no = "+905XXXXXXXXXX"
mesaj = "Bu mesaj anında gönderildi."

# Mesajı hemen gönder
pywhatkit.sendwhatmsg_instantly(telefon_no, mesaj)

Bu yöntem, özellikle bir tetikleyiciye (örneğin bir sensörden gelen veri veya bir veritabanı uyarısı) bağlı olarak anlık bildirim göndermek istediğiniz senaryolarda oldukça kullanışlıdır.

Grup Mesajlaşma ve Otomasyon

Pywhatkit, sadece bireysel numaralara değil, grup bağlantı kimliklerini (group ID) kullanarak gruplara da mesaj gönderebilir. Grup kimliği, Whatsapp Web üzerindeki grup URL'sinin sonundaki dizidir.

import pywhatkit

# Grup kimliği, URL'deki 'chat' parametresinden alınır
grup_id = "ABcDeFgHiJkLmNoPqRsTuV"
mesaj = "Herkese merhaba, bu bir grup otomasyon mesajıdır."

pywhatkit.sendwhatmsg_to_group(grup_id, mesaj, 16, 0)

Grup mesajlaşmalarında, grubun üyesi olduğunuzdan ve grup ayarlarının mesaj göndermenize izin verdiğinden emin olun. Aksi takdirde otomasyon, grup sohbetine erişim sağlayamayacaktır.

Otomasyon Yöntemlerinin Karşılaştırılması

Yöntem Avantajı Dezavantajı
sendwhatmsg Zamanlanmış görevler için ideal Tarayıcının açık olması gerekir
sendwhatmsg_instantly Hızlı bildirim sağlar Arayüz yüklenmesi gecikebilir
sendwhatmsg_to_group Toplu bilgilendirme imkanı Grup ID yönetimi karmaşıktır

Hata Ayıklama ve Yaygın Sorunlar

Otomasyon yazarken karşılaşabileceğiniz en yaygın hata, internet bağlantısının yavaşlığı nedeniyle sayfanın yüklenememesidir. Pywhatkit, varsayılan olarak bir bekleme süresine sahiptir. Eğer sisteminiz yavaşsa, bu süreyi artırmanız gerekebilir.

import pywhatkit

# 20 saniye bekleme süresi ile mesaj gönderimi
pywhatkit.sendwhatmsg("+905XXXXXXXXXX", "Test mesajı", 17, 0, wait_time=20)

Yaygın hatalar arasında tarayıcı oturumunun düşmesi veya internetin kesilmesi yer alır. Bu durumları yönetmek için try-except blokları kullanarak hata yakalama mekanizmaları kurmanız, uygulamanızın kararlılığını artıracaktır.

Güvenlik Sorumluluk Reddi: Bu kütüphane, Whatsapp'ın kullanım koşullarına aykırı olabilecek spam mesaj gönderimi için kullanılmamalıdır. Otomasyon araçları, platform kurallarına uyulmadığı takdirde hesap kısıtlamasına veya kalıcı yasaklamalara yol açabilir. Sorumluluk tamamen geliştiriciye aittir.

Sıkça Sorulan Sorular

Pywhatkit arka planda çalışabilir mi?

Hayır, Pywhatkit bir GUI (grafik arayüz) otomasyon aracı olduğu için tarayıcının ön planda ve görünür olması gerekir. Arka planda çalışması için Selenium gibi daha gelişmiş tarayıcı sürücüleri tercih edilmelidir.

Mesaj gönderirken tarayıcıyı kapatabilir miyim?

Mesaj gönderim süreci tamamlanana kadar tarayıcıyı kapatmamalısınız. İşlem bittikten sonra kütüphane tarayıcıyı otomatik olarak kapatabilir veya açık bırakabilir.

Birden fazla kişiye aynı anda mesaj atabilir miyim?

Evet, bir liste oluşturup döngü (loop) kullanarak numaralara sırasıyla mesaj gönderebilirsiniz. Ancak çok hızlı gönderimler, Whatsapp tarafından "spam" olarak algılanabilir.

Grup ID'sini nasıl bulurum?

Whatsapp Web'de ilgili gruba girin. Tarayıcı adres çubuğundaki URL'nin son kısmında yer alan karmaşık karakter dizisi grup ID'nizdir.

Pywhatkit ile resim gönderebilir miyim?

Evet, sendwhats_image fonksiyonu ile yerel bir dosya yolunu belirterek resim gönderme işlemi gerçekleştirebilirsiniz.

İleri Düzey Senaryolar: CSV Dosyasından Toplu Mesaj Gönderimi

Pywhatkit kütüphanesini kullanarak sadece tekil mesajlar değil, bir veri listesi üzerinden dinamik otomasyonlar da oluşturabilirsiniz. Özellikle müşteri listeleri veya arkadaş grupları için hazırlanan .csv dosyaları, otomasyon sürecini profesyonel bir seviyeye taşır. Aşağıdaki örnekte, bir CSV dosyasından isim ve telefon numarası okuyarak döngü ile mesaj gönderen bir yapı kurgulanmıştır.

import pywhatkit
import csv
import time

def toplu_mesaj_gonder(dosya_yolu):
    with open(dosya_yolu, mode='r', encoding='utf-8') as file:
        reader = csv.reader(file)
        next(reader)  # Başlık satırını atla
        for isim, telefon in reader:
            mesaj = f"Merhaba {isim}, bu otomatik bir bilgilendirme mesajıdır."
            # Her mesaj arasında 20 saniye bekleme süresi ekleyerek ban riskini azaltın
            pywhatkit.sendwhatmsg_instantly(telefon, mesaj, wait_time=15)
            time.sleep(10)

# toplu_mesaj_gonder('kisiler.csv')

Otomasyon Süreçlerinde Performans ve Güvenlik İpuçları

WhatsApp otomasyonu yaparken karşılaşılan en büyük sorun, hesabın "spam" olarak algılanmasıdır. Pywhatkit kullanırken performansınızı optimize etmek ve hesabınızı korumak için şu stratejileri uygulamanız önerilir:

  • Zaman Aralığı (Delay): time.sleep() fonksiyonunu kullanarak gönderimler arasına rastgele süreler ekleyin. Sabit aralıklarla gönderim yapmak, bot olduğunuzun anlaşılmasını kolaylaştırır.
  • Tarayıcı Yönetimi: Pywhatkit, tarayıcıyı otomatik açtığı için oturumunuzun açık olduğundan emin olun. Tarayıcıyı kapatmak yerine, pywhatkit.close_tab() fonksiyonu ile sekmeyi yönetmeyi tercih edin.
  • Hata Yönetimi (Try-Except): Ağ bağlantısı koptuğunda veya WhatsApp Web yüklenemediğinde programın çökmemesi için mutlaka hata yakalama blokları kullanın.
try:
    pywhatkit.sendwhatmsg("+905XXXXXXXXX", "Test mesajı", 15, 30)
except Exception as e:
    print(f"Mesaj gönderilirken bir hata oluştu: {e}")

Alternatif Kütüphane Yaklaşımı: Selenium ile Özelleştirme

Eğer Pywhatkit'in sunduğu özellikler projeniz için yetersiz kalıyorsa (örneğin, mesajın gönderilip gönderilmediğini DOM üzerinden kontrol etmek istiyorsanız), Selenium kütüphanesine geçiş yapabilirsiniz. Selenium, tarayıcıyı tamamen kontrol etmenize olanak tanır ancak Pywhatkit'e göre çok daha karmaşık bir yapıya sahiptir. Pywhatkit, hızlı prototipleme ve basit bildirimler için idealdir; Selenium ise kurumsal seviyede, özelleştirilmiş botlar için tercih edilmelidir.

Özellik Pywhatkit Selenium
Kurulum Zorluğu Çok Kolay Orta/Zor
Özelleştirme Düşük Çok Yüksek
Kullanım Amacı Hızlı Otomasyon Gelişmiş Web Kazıma/Bot

Sonuç

Python ile Pywhatkit kullanarak Whatsapp otomasyonu yapmak, özellikle kişisel asistanlar veya küçük ölçekli bildirim sistemleri geliştirmek için oldukça verimli bir yoldur. Bu rehberde öğrendiğiniz temel fonksiyonlar ve hata ayıklama teknikleri, otomasyon projelerinizde sağlam bir temel oluşturacaktır. Bir sonraki adımda, bu otomasyonu bir veritabanı ile bağlayarak dinamik hatırlatıcılar oluşturmayı deneyebilirsiniz. Yazılım geliştirme süreçlerinde her zaman etik kurallara ve platform politikalarına uygun hareket etmeyi unutmayın.

Bu yazıya tepkinizi paylaşın:
Selin Korkmaz

Dijital yayıncılık dünyasında ev geliştirme ve kendin yap projeleri üzerine uzmanlaştım. Adım adım rehberler hazırlayarak kullanıcıların teknik becerilerini geliştirmelerine yardımcı oluyorum.

Yorumlar (0)

Yorum Yaz