„WhatsApp“ roboto automatizavimas naudojant „Selenium“ žingsnis po žingsnio

Paskutiniai pakeitimai: 04/12/2025
Autorius: Izaokas
  • Automatizavimas naudojant „Selenium“ leidžia valdyti WhatsApp Žiniatinklis tarsi tikras vartotojas, siųsdamas iš anksto nustatytas žinutes kontaktams masiškai.
  • Geras OOP dizainas (pavyzdžiui, su „WhatsAppBot“ klase) palengvina logikos įkapsuliavimą, kodo pakartotinį naudojimą ir robotų priežiūrą.
  • Roboto patikimumas priklauso nuo teisingų selektorių (XPATH, CSS), įkėlimo laiko valdymo ir aktyvios „WhatsApp Web“ sesijos palaikymo.
  • Pitonas C# gali būti naudojamas kartu su „Selenium“, siekiant integruoti pranešimų siuntimą į didesnius projektus arba išorines automatizavimo platformas.

„WhatsApp“ žiniatinklio automatizavimas naudojant „Selenium“

Jei kada nors pagalvojote, kad „Norėčiau, kad „WhatsApp“ galėtų pati tvarkyti užsakymus.„...pirkinių sąrašus ar priminimus man jų neprižiūrint“, esate tinkamoje vietoje. Vis daugiau kūrėjų ir smalsuolių kuria savo robotus „WhatsApp Web“ naudodami „Selenium“, ir labai dažnai susiduriama su tokiomis problemomis kaip... scenarijus Jis sako, kad išsiuntė žinutę... bet pokalbyje nieko nerodoma.

Šiose eilutėse pamatysime, kaip tai veikia „WhatsApp“ roboto automatizavimas naudojant „Selenium“, kokie realūs jo panaudojimo būdai, kaip struktūrizuotas tipinis projektas, kokios dažnos klaidos gali lemti pranešimo „išsiuntimą“ terminalas Bet aš nepasiekiau pokalbių kambario, ir aš jums žingsnis po žingsnio parodysiu, kaip sukurti savo robotą tiek Python, tiek C# kalbomis. Viskas paaiškinta aiškia, prieinama kalba su praktiniais patarimais, kad galėtumėte pritaikyti idėją savo poreikiams.

Kas yra selenas ir kodėl jis naudingas automatizuojant „WhatsApp Web“?

Selenium yra naršyklės automatizavimo įrankis Tai leidžia programiškai valdyti tai, ką darytų žmogus: atidaryti puslapį, spustelėti mygtukus, įvesti teksto laukus, skaityti informaciją, naršyti tarp skyrių ir apskritai imituoti realią sąveiką su svetaine. Tai itin populiaru programinės įrangos testavimo pasaulyje, tačiau taip pat plačiai naudojama pasikartojančioms užduotims bet kurioje svetainėje automatizuoti.

kai dirbate su „Selen WebDriver“Jūsų scenarijus veikia kaip naršyklės „nuotolinio valdymo pultas“. Jūs nurodote, į kurį URL adresą eiti, kuriuos elementus rasti (naudodami XPath, CSS parinkiklį, ID, pavadinimą ir kt.) ir kokį veiksmą su jais atlikti: rašyti tekstą, spustelėti, pateikti formas, slinkti puslapiu arba išgauti duomenis. „WhatsApp Web“ atveju ši funkcija naudojama automatizuoti pranešimų siuntimą, kontaktų valdymą ar net registracijos kodų tikrinimą.

Pritaikytas „WhatsApp Web“, „Selenium“ leidžia kurti robotai, kurie rašo iš anksto nustatytas žinutes konkretiems kontaktamsnet neprisiliesdami prie telefono. Atsidaro naršyklė, įkelia web.whatsapp.com, prisijungiate (dažniausiai pirmą kartą nuskaitydami QR kodą) ir programa gali atidaryti pokalbius, rašyti žinutes, paspausti siuntimo mygtuką ir pakartoti procesą su tiek kontaktų, kiek jums reikia.

Šis metodas turi vieną svarbų pranašumą: Jūs nepriklausote nuo oficialių API ar nepalaikomų išorinių bibliotekųNes jūs tiesiog automatizuojate žiniatinklio versiją taip, lyg ją naudotumėte rankiniu būdu. Tačiau turėtumėte žinoti apie galimus „WhatsApp“ žiniatinklio sąsajos pakeitimus, nes dėl selektorių ar HTML struktūros pakeitimų robotas gali nustoti veikti, kol neatnaujinsite kodo; žr. [nuoroda į atitinkamą dokumentaciją]. „WhatsApp Web“ neįkelia pranešimų bendriems sprendimams.

Pagrindiniai „WhatsApp“ roboto su „Selenium“ naudojimo būdai

Kai suprasite, kaip „Selenium“ valdo naršyklę, atsivers daugybė galimybių. Paprastas „WhatsApp Web“ robotas gali prasidėti kaip koncepcijos įrodymas, bet... Tai greitai tampa naudingu įrankiu automatizuoti kasdienius darbo procesus.

  Paprasti būdai, kaip pataisyti „WhatsApp“ kontaktus, nerodomus „iPhone“.

Srityje automatizuotas žiniatinklio programų testavimas„Selenium“ yra standartas. „WhatsApp“ kontekste jį galima naudoti norint imituoti, kaip vartotojas sąveikauja su sąsaja: atidaro pokalbių langą, rašo ir siunčia žinutes, tikrina, ar ekrane rodomi tam tikri pranešimai, arba užtikrina, kad komunikacijos srautai veiktų taip, kaip tikėtasi, integruojant „WhatsApp“ su kitomis sistemomis.

Kitas labai dažnas panaudojimo būdas yra pasikartojančių užduočių automatizavimasĮsivaizduokite, kad kiekvieną dieną turite siųsti priminimus klientų grupei, patvirtinti susitikimus arba siųsti standartinę informaciją. Užuot rankiniu būdu įvedę informaciją vėl ir vėl, robotas atidaro pokalbį su kiekvienu kontaktu ir išsiunčia iš anksto nustatytų pranešimų rinkinį su jūsų pasirinkta informacija. Taip pat galite pasinaudoti Automatiniai atsakymai „WhatsApp Business“. priklausomai nuo atvejo.

Tas pats modelis gali būti naudojamas kuriant sistemas automatizuota komunikacija ir rinkodaraGalite tvarkyti kontaktų sąrašą ir planuoti reklaminius pranešimus, užsakymų būsenos atnaujinimus ar vidinius įmonės pranešimus. Nors „WhatsApp“ taiko griežtas taisykles, techniškai robotas veikia kaip žmogus, tik automatizuotas. Jei ieškote verslui skirtų alternatyvų, apsvarstykite... automatizavimas naudojant „WhatsApp Business API“.

Galiausiai neturime pamiršti ir dalies apie duomenų rinkimasNaudodami „Selenium“ galite skaityti puslapio turinį, išgauti pranešimo tekstą, įrašyti, kas ir kada atsako, ar net derinti jį su išoriniais analizės duomenimis. Nors tipiškas pavyzdys sutelktas į pranešimų siuntimą, tas pats įrankis leidžia naršyti trečiųjų šalių svetaines, rinkti informaciją ir apdoroti ją savo scenarijuje.

Tipinė „WhatsApp“ roboto struktūra su „Selenium“ Python kalba

Paprasti „Python“ pavyzdžiai dirbtiniam intelektui su „Scikit-Learn“, „TensorFlow“ ir „PyTorch“.

Labai dažnas šio tipo projekto dizainas Python kalboje yra pagrįstas programavimas Objektinis programavimas (OOP)Tai apima visą „WhatsApp Web“ sąveikos logiką konkrečioje klasėje. Dėl to kodas tampa švaresnis, modulinis ir lengviau prižiūrimas.

Įprasta apibrėžti klasę, pavyzdžiui WhatsAppBot, kuris yra atsakingas už naršyklės nustatymų grupavimą, bagažinė „Selenium“ suteikia „WhatsApp Web“ atidarymo sistemą ir metodus, kurie siųs pranešimus jūsų kontaktams. Tai paslepia technines detales klasės viduje, todėl visiems, naudojantiems robotą, tereikia sukurti egzempliorių ir iškviesti jo viešuosius metodus.

Toje klasėje dažnai išsiskiria vienas metodas, pvz. siųsti_žinutes (arba panašus), kurio pagrindinė užduotis – peržiūrėti kontaktų sąrašą. Kiekvienam kontaktui sugeneruojamas arba atidaromas atitinkamas „WhatsApp“ žiniatinklio URL, naudojant „XPath“ ar kitą parinkiklį aptinkamas pranešimo įvesties laukas, įvedamas tekstas ir imituojamas „Enter“ klavišo paspaudimas arba siuntimo mygtuko spustelėjimas.

Konstrukcija užbaigiama pagrindiniu bloku, kurio tipas jei __name__ == «__main__»kur sukuriama „WhatsAppBot“ klasė ir paleidžiamas metodas, kuris iteruoja per kontaktų sąrašą. Dėl šios organizacijos scenarijų galima pakartotinai naudoti kituose projektuose arba integruoti su didesnėmis sistemomis, nekeičiant vidinės logikos.

Šis dizainas aiškiai atspindi OOP principus: abstrakcija, inkapsuliacija ir moduliškumas„WhatsApp roboto“ koncepciją sujungiate į vieną klasę, naršyklės ir „Selenium“ informaciją įtraukiate į privačius arba vidinius metodus ir kodą susisteminate į pakartotinai naudojamas dalis, kad galėtumėte pritaikyti siuntimo logiką, pranešimus ar kontaktų šaltinį neperrašydami visko.

  Išsamus įvadas į rūdis: praktinis pradedančiųjų vadovas su pavyzdžiais

Vykdymo eiga: kaip veikia robotas žingsnis po žingsnio

Už, regis, paprasto scenarijaus slypi labai aiškus vykdymo srautas ką svarbu suprasti, ypač kai kas nors negerai (pavyzdžiui, kai konsolėje rodoma, kad pranešimas išsiųstas, bet programoje joks pranešimas nerodomas).

Viskas prasideda, kai atsiranda pavyzdys WhatsAppBot (arba jūsų apibrėžta klasė). Konstruktoriuje inicijuojamas „Selenium WebDriver“, sukonfigūruojama naršyklė (dažniausiai „Chrome“, nors galite naudoti ir kitas) ir atidaromos reikiamos parinktys: lango dydis, vartotojo profilis, numanomas skirtasis laikas ir kt.

Kai naršyklė paruošta, metodas vadinamas tuo siunčia žinutes į kontaktų sąrašąKiekvienam kontaktui robotas atidaro su tuo numeriu susietą „WhatsApp Web“ URL arba pasiekia pokalbį naudodamas vidinę paiešką. Šiuo metu labai svarbu, kad jau būtumėte prisijungę prie „WhatsApp Web“. Jei tai darote pirmą kartą, QR kodą turėsite nuskaityti rankiniu būdu, bet nuo tada galėsite pakartotinai naudoti sesiją, jei neuždarysite naršyklės ar vartotojo profilio. Jei reikia peržiūrėti arba uždaryti atidarytas sesijas, patikrinkite [atitinkamą skyrių / skyrių / ir pan.]. Peržiūrėti ir uždaryti atidarytas sesijas.

Kitas žingsnis – surasti pranešimo įvesties elementasČia paprastai naudojamas specialus XPath arba CSS selektorius. Radęs robotą, jis įveda iš anksto nustatytą tekstą (arba kelis tekstus) ir imituoja siuntimo veiksmą, paspausdamas Enter klavišą arba spustelėdamas siuntimo mygtuką. Šis procesas kartojamas visiems sąraše esantiems kontaktams.

Vykdymo metu kodas įjungia išimčių tvarkymas Taip yra tuo atveju, jei trūksta teksto laukelio, puslapis įkeliamas per ilgai arba yra naršyklės problema. Proceso pabaigoje naršyklė ir „WebDriver“ egzempliorius uždaromi, atlaisvinant išteklius ir paliekant viską švarią būsimam naudojimui.

Techniniai reikalavimai „WhatsApp Web“ automatizavimui naudojant „Python“ ir „Selenium“

Norint pradėti funkcionalų projektą, reikia atitikti keletą reikalavimų. pagrindiniai aplinkos reikalavimaiLaimei, daugumą jų lengva nustatyti ir reikia atlikti tik vieną kartą.

Pirma, jūs turite turėti Įdiegta Python 3.x versija jūsų sistemoje. Bet kuri moderni versija paprastai gerai veikia su „Selenium“, nors patartina būti gana atnaujintai, kad būtų išvengta priklausomybių nesuderinamumo.

Antras žingsnis – įdiegti Seleno biblioteka per PIP. Iš terminalo arba linijos komandos tiesiog vykdykite komandą pip įdiegti selenąTai atsisiųs ir įdiegs paketą, reikalingą naršyklei valdyti iš „Python“.

Be knygyno, jums reikės ir Jūsų naršyklei tinkama žiniatinklio tvarkyklė (pavyzdžiui, „ChromeDriver“, jei naudojate "Google Chrome"Šis failas veikia kaip tarpininkas tarp jūsų „Python“ scenarijaus ir naršyklės, leisdamas „Selenium“ siųsti instrukcijas ir gauti atsakymus.

Galiausiai svarbu turėti a stabilus interneto ryšys ir turėti prieigą prie „WhatsApp Web“. Paprastai pirmą kartą paleidus robotą, naršyklė atidaroma adresu web.whatsapp.com ir jums reikės nuskaityti QR kodą telefonu. Prisijungus, robotas gali veikti toje sesijoje, kol yra aktyvus.

Bendrieji „WhatsApp“ automatizavimo failo naudojimo su „Selenium“ veiksmai

Kai aplinka paruošta, automatizavimo scenarijaus naudojimas paprastai atliekamas laikantis tam tikro rinkinio gana standartiniai žingsniainesvarbu, ar kodą gavote iš saugyklos, ar parašėte jį patys.

  Kaip pritaikyti nuotraukų filtrus vaizdo skambučiams „Whatsapp“.

Pirmas dalykas yra Atsisiųskite failą su šaltinio kodu arba klonuoti saugyklą, kurioje yra projektas. Daugeliu atvejų turėsite pagrindinį failą, pvz., main.py, kuris bus programos įėjimo taškas.

Tada atidarote savo mėgstamiausias redaktorius arba IDE (VS Code, PyCharm ir kt.) ir, jei reikia, sukurkite .py failą, į kurį nukopijuosite kodą. Jei jis jau yra saugykloje, tiesiog atidarykite jį iš IDE, kad galėtumėte jį modifikuoti pagal savo pageidavimus.

Scenarijuje rasite skyrių, kuriame kontaktų sąrašąPaprastai tai yra tokia struktūra kaip „contacts =“. Čia reikia pridėti žmones, kuriems norite siųsti žinutes, laikantis pradinio kūrėjo apibrėžto formato.

Taip pat turėsite sąrašą arba bloką su iš anksto nustatyti pranešimai kuriuos robotas siųs. Gera idėja šiuos tekstus pritaikyti prie konkretaus naudojimo atvejo: užsakymo patvirtinimų, pristatymo pranešimų, priminimų ir pan. Keisdami šį sąrašą, galite lengvai keisti turinį, kuris bus siunčiamas visiems kontaktams.

Sukonfigūravę kontaktus ir pranešimus, išsaugokite failą ir Paleidžiate jį iš terminalo arba iš pačios IDEAtsidarys naršyklė, įkels „WhatsApp Web“ ir įsitikinę, kad esate prisijungę, pamatysite, kaip robotas automatizuoja pranešimų siuntimo kiekvienam sąraše esančiam kontaktui procesą vėl ir vėl.

Python projekto pavyzdys: main.py ir pritaikymas

Daugelis saugyklų, kuriose parodyta, kaip automatizuoti „WhatsApp Web“ naudojant „Selenium“, yra suskirstytos į pagrindinį failą, paprastai vadinamą pagrindinis.pykuriame yra pagrindinė roboto logika. Remdamiesi tuo, galite atlikti pakeitimus ir patobulinimus pagal savo poreikius.

Šio tipo projektuose pagrindinis failas paprastai yra atsakingas už įkelti kontaktų sąrašąInicijuokite robotą (klasės, valdančios „Selenium“, egzempliorių) ir paleiskite metodą, kuris siunčia pranešimus. Kontaktų sąrašas gali būti užkoduotas tiesiai į scenarijų arba paimtas iš išorinio failo, tačiau daugelyje pavyzdžių jis pateikiamas tiesiai kode, kad būtų paprasčiau.

Jei norite pakeisti elgesį, tiesiog redaguokite main.py, norint pridėti arba pašalinti kontaktus, modifikuoti siunčiamus tekstus arba net įdiegti naujų funkcijų, pavyzdžiui, sėkmingai išsiųstų pranešimų ir jų išsiuntimo laiko įrašymą žurnale arba pakartotinių bandymų laukimo sąrašų valdymą.

Šis metodas labai supaprastina eksperimentavimą: Galite pradėti nuo minimalaus roboto Jis siunčia tik vieną ar du pranešimus keliems bandomiesiems numeriams, o tada galite palaipsniui sudėtinginti logiką. Įgiję pasitikėjimo, galite integruoti robotą su duomenų bazėsišorinės sistemos arba trečiųjų šalių API, kurios automatiškai generuoja pranešimų turinį; pavyzdžiui, mokymasis Sukurkite pokalbių robotą naudodami „ChatGPT“ API Tai gali būti naudinga generuojant dinaminius atsakymus.

Be to, tai, kad daugelis projektų yra atvirojo kodo, skatina visus dalyvauti. prisidėti prie patobulinimų, pataisymų ar naujų funkcijųJei rasite patikimesnį būdą pasirinkti elementus, geriau valdyti laukimo laiką arba pridėti palaikymą daugiau naršyklių, galite pasidalyti šiais pakeitimais, kad padėtumėte kitiems kūrėjams.

Laukiama žinutės. Tai gali užtrukti „WhatsApp“.
Susijęs straipsnis:
„WhatsApp“ programoje „Laukiama pranešimo. Tai gali užtrukti“: ką tai reiškia ir kaip tai ištaisyti