Python | WhatsApp Geburtstag Bot
Wollten Sie jemals Ihren Freunden automatisch Geburtstag wünschen oder eine Reihe von Nachrichten automatisch zu einem voreingestellten Zeitpunkt an Ihren Freund (oder einen Whastapp-Kontakt!) Senden oder Ihre Freunde senden, indem Sie Tausende von zufälligen Texten auf WhatsApp senden? Mit Browser Automation können Sie all das und noch viel mehr tun!
Zuerst müssen Sie diese installieren: -
1) Python Bindings for Selenium (Browser Automation Software)
Pip installieren Selen
2) Chrome-Webtreiber
Laden Sie den Chrome-Treiber hier herunter : Chromedriver-Download-Seite (wählen Sie Ihre spezifische Version aus)
Wie der Bot das macht
Das Skript verwendet das PySelenium-Paket, um ein Chrome-Webdriver-Fenster zu öffnen, in dem alle Aufgaben ausgeführt werden. Es wird geprüft, ob das aktuelle Datum und der aktuelle Monat mit denen in einer JSON-Datei übereinstimmen. Wenn ja, wird das Attribut 'name' zurückgegeben, mit dem der entsprechende Chat im WhatsApp-Web gefunden wird (Suche über xpath ). Das Skript simuliert dann das Klicken auf den Chat, öffnet ihn, gibt die Nachricht in das Chatfeld ein und simuliert einen Klick auf die Schaltfläche Senden.
Was ist JSON?
JSON steht für JavaScript Object Notation. Es ist eine sehr einfache und einfache Art, Daten zu speichern. Obwohl es von JavaScript abgeleitet ist, ist es sprachunabhängig und ähnelt im Aussehen Python-Wörterbüchern. Weitere Informationen zu JSON finden
Sie in diesem Artikel.
Unten ist die Implementierung
import
datetime
import
json
from
selenium
import
webdriver
import
time
eleNM
=
None
def
wish_birth(name):
return
"Happy Birthday "
+
name.split(
" "
)[
0
]
+
"!!"
def
getJsonData(
file
, attr_ret, attr1, attr2, attr_val1, attr_val2):
data
=
json.load(
file
)
retv
=
[]
for
i
in
data:
if
(i[attr1]
=
=
attr_val1
and
i[attr2]
=
=
attr_val2):
retv.append(i[attr_ret])
return
retv
data_file
=
open
(
"birthdays.json"
,
"r"
)
namev
=
[]
(
"Script Running"
)
while
True
:
try
:
datt
=
datetime.datetime.now()
namev
=
getJsonData(data_file,
"name"
,
"birth_month"
,
"birth_date"
,
str
(datt.month),
str
(datt.day))
except
json.decoder.JSONDecodeError:
continue
if
(namev !
=
[]):
break
chropt
=
webdriver.ChromeOptions()
chropt.add_argument(
"user-data-<LOCATION TO YOUR CHROME USER DATA>"
)
driver
=
webdriver.Chrome(executable_path
=
"<LOCATION TO CHROME WEBDRIVER>"
,
options
=
chropt)
driver.get(
"https://web.whatsapp.com/"
)
time.sleep(
10
)
(namev)
for
inp
in
namev:
try
:
eleNM
=
driver.find_element_by_xpath(
'//span[@title ="{}"]'
.
format
(inp))
except
Exception as ex:
(ex)
continue
eleNM.click()
while
(
True
):
eleTF
=
driver.find_element_by_class_name(
"_13mgZ"
)
eleTF.send_keys(wish_birth(inp))
eleSND
=
driver.find_element_by_class_name(
"_3M-N-"
)
eleSND.click()
break