discord icon
سرور دیسکورد گاردایران
Mr.Python

ربات واتس اپ WhatApp با پایتون

پست های پیشنهاد شده

سلام

قبل از هر چیز من یه سری توضیحات بدم.

تو اینجا ما به صورت مستقیم با پروتکل سازی WhatsApp کار نمیکنیم . یعنی صرفا به وسیله ی یک مرورگر (کروم یا فایرفاکس) وارد اکانت واتس اپمون میشیم و بنا به کاری که باید انجام بدیم کدمونو مینویسیم .

تو این سورس کد ما به شخصی که تو مخاطبینمون اسمش Ali سیو هست و از قبل ، چتش رو تو لیست چت هامون داریم ، میخوایم پیامی بفرستیم.

پیاممونم اینه :  Salam lotfan be anjoman ma morajee konid guardiran.org

ما تو این سورس کد از ماژول selenium استفاده میکنیم و از آپشن headless برای عدم نمایش پنجره مرورگر  (شما اگه از این اپشن استفاده نکنین هر بار که بخواید از این سورس کد استفاده کنید و اجراش کنید ، پنجره مرورگر نمایش داده میشه ، و این خیلی کار جالبی نیست به شخصه دوست دارم وقتی میخوام کارامو با selenium انجام بدم حدالامکان هیچ مرورگری رو تو ضفحه نمایش نبینم و همه ی عملیات اون پشت مشتا انجام بشه... دوستانی که با ماژول سلنیوم کار کردن میدونن چی میگم )

خب تو اینجا شما فقط باید از مرورگر firefox استفاده کنین .

نکات :

اولا اینکه شما وقتی از واتس اپ تحت وب استفاده میکنید ، یعنی سایت web.whatsapp,com ، برای لاگین کردن از شما میخواد که با گوشیتون QR code رو اسکن کنید تا بتونید وارد اکانتتون بشید . 

اما اگه بخوایم هر بار اینکارو انجام بدیم که دیگه اسمش نمیشه ربات ! 

برای همین ما اول یه پروفایل تو firefox میسازیم به اسم دلخواه که اینجا اسمشو میذارم WhatsAppProfile 

نحوه ساخت پروفایل به این شکل هست که 

اول از همه run ویندوز رو باز کنید .

دستور زیر رو تایپ کنید و اینتر رو بزنید

firefox.exe -p

یه پنجره باز میشه گزینه ی Create profile رو بزنید 

next کنید.

تو این مرحله باید یه نام به پروفایل اختصاص بدید که همانطور که گفتم ما اینجا از این WhatsAppProfile استفاده میکنیم.

بعد از اینکه اسمو نوشتید choose folder رو بزنید و پروفایل رو کنار اسکریپتتون (سورس کدتون!) سیو کنید خب finish رو بزنید و میبینید که نهایتا تو لیست پروفایل ها اسم WhatsAppProfile اومده . روش کلیک کنین و گزینه ی use selected profile withput asking at startup رو غیر فعال کنید .

و در اخر Start Firefox رو بزنید . که مرورگر باز بشه 

وارد سایت web.whatsapp.com بشید . و با گوشیتون لوگین کنید 

وقتی لوگین کردید و اکانت واتس اپتون تو مرورگر بالا اومد ، مرورگرو ببندید .

اسم پروفایل بنده تو Desktop به این شکل ذخیره شده:

z1hj4sh.WhatsAppProfile

که اشکالی نداره و میتونید تغییر نام بدینش .

مثلا اون قسمت اضافی رو حذف کنید و فقط اسم فایل WhatsAppProfile باشه . 

خیلی خب

حالا میریم سراغ کدمون تو پایتون:

from selenium import webdriver
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By

foptions = Options()
foptions.headless = True
fp = webdriver.FirefoxProfile('D:/WhatsAppProfile')
driver = webdriver.Firefox(options=foptions, firefox_profile=fp, executable_path='D:/geckodriver.exe')
driver.get("https://web.whatsapp.com")
while True:
    try:
        WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, '//span[contains(@title, "Ali")]'))).click()
        #moj_f = driver.find_element_by_xpath('//span[contains(@title, "Ali")]') # اینو هم میتونید بجای خط بالا بنویسید
        break
    except:
        continue
#moj_f.click() اگه اون کدی که پشتش هشتک داره رو نوشتید اینو باید از حالت کامنت درارید یعنی هشتک پشتشو حذف کنید 
while True:
    try:
        WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, '//div[contains(@spellcheck, "true")]'))).click()
        textbox_f = driver.find_element_by_xpath('//div[contains(@spellcheck, "true")]')
        break
    except:
        continue
textbox_f.click()
extbox_f.send_keys('Salam lotfan be anjoman ma morajee konid guardiran.org')
textbox_f.send_keys('\ue007') # Enter Character
print('Ersal Shod')

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال دیدگاه یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید دیدگاهی ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در سایت ما ثبت نام کنید. عضویت خیلی ساده است !

ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید

ورود به حساب کاربری