Cum se construiește un bot simplu de conectare automată cu Python și seleniu
Automatizare este, fără îndoială, una dintre cele mai râvnite abilități pe care un programator le poate avea. Automatizarea este folosită de obicei pentru sarcinile care sunt repetitive, plictisitoare, consumatoare de timp, sau altfel ineficace fără a folosi un script.
Cu web automatizare, puteți ușor creați un bot pentru a efectua diferite sarcini pe web, de exemplu, pentru a monitoriza ratele hoteliere concurente pe Internet și a determina cel mai bun preț.
Personal, am găsit întotdeauna vă conectați la e-mailul meu destul de repetitive și plictisitoare, deci de dragul unui exemplu simplu de a vă face pe voi a început cu automatizarea web, să punem în aplicare o scriptul automatizat Python la conectați-vă cu un singur clic la un cont Gmail.
Instalare și configurare
În acest tutorial vom folosi urmatoarele instrumente:
- Limba de programare Python
- Browserul Google Chrome
- Seleniul instrumentului pentru automatizarea browser-ului
- Driverul de conducător auto Chrome pentru Chrome
Pentru programul nostru, vom folosi limba de programare Python, în mod specific versiunea 2.7.11. Este esențial să instalăm a destul de noua versiune Python 2 pentru că vine cu PIP, care ne va permite să instalăm pachete și cadre terță parte pe care va trebui să le automatizăm.
Odată instalat, reporniți computerul pentru ca schimbările să aibă efect. Utilizați comanda pip instalarea seleniului
pentru a adăuga Setul de instrumente de automatizare pentru seleniul web la Python. Seleniul ne va permite să derulam în mod programatic, să copiem textul, să umplem formularele și să apăsăm butoanele.
Descărcați în cele din urmă Selenium Chrome Driver executabil, care va deschideți Google Chrome după cum este necesar pentru a ne îndeplini sarcinile automatizate. Driverul Chrome este o modalitate de a deschide Google Chrome (care ar trebui deja instalat) accesați programele de operare standard ale browserului.
Pur și simplu descărcați fișierul ZIP cel mai recent de aici, extrageți chromedriver.exe
executabil, și pune executabil în orice director. Asigurați-vă că notați unde este executivul dvs., deoarece vom avea nevoie de ea odată ce vom începe.
Pornirea programului
Așa cum am menționat mai sus, vom folosi Sistemul de automatizare web pentru seleniu pentru a conectați-vă programat. Primul ordin de afaceri este importați fiecare modul vom avea nevoie de biblioteca Selenium Python pe care am instalat mai bine cu PIP.
Să deschidem IDLE sau alt editor de cod, creați un nou fișier Python cu .py
extensie și importați următoarele module:
de la selenium import webdriver de la selenium.webdriver.common.by import De la selenium.webdriver.support.ui import WebDriverWait de la selenium.webdriver.support import_condiții de așteptare ca EC
Mai departe, vom creați două șiruri de caractere care reprezintă noastre numele de utilizator și parola pentru contul de e-mail. Acordați atenție capitalizării, mai ales în șirul de parole.
usernameStr = 'putYourUsernameHere' passwordStr = 'putYourPasswordHere'
Acum că avem totul înființat pentru a începe procesul de conectare, trebuie să instruim într-adevăr o fereastră de browser deschideți Google Chrome, și navigați la pagina de conectare Gmail.
Dacă nu ați făcut-o deja, asigurați-vă că este scriptul dvs. Python salvate în aceeași locație ca și chromedriver.exe
executabil am extras mai devreme.
browser = webdriver.Chrome () browser.get (('https://accounts.google.com/ServiceLogin?' service = mail & continue = https: //mail.google ".com / mail / # identificator"))
Găsirea elementului nostru
Am obținut cu succes browserul pentru a deschide Gmail, dar acum avem nevoie găsiți câmpurile de introducere pe pagina web, în care putem introduceți numele de utilizator și parola.
Putem face acest lucru cu ușurință utilizând instrumentele de dezvoltare Chrome încorporate. Trebuie doar să faceți clic dreapta pe câmpurile de introducere și să selectați “Inspecta” meniul.
Acum e doar o problemă folosind HTML id
atribute pentru a găsi elementele programat.
În codul de mai jos, suntem pur și simplu căutarea câmpului de introducere a numelui de utilizator cu id
, și umplând-o cu textul dorit. Atunci suntem în căutarea butonului Următor care trece printr-o animație rapidă înainte de a ne solicita parola.
send_keys ()
și clic()
comenzile fac exact așa cum sugerează numele lor - send_keys ()
simulează apăsările de taste în elementul dorit și clic()
simulează un clic al mouse-ului.
# completați numele de utilizator și apăsați butonul următor username = browser.find_element_by_id ('Email') username.send_keys (usernameStr) nextButton = browser.find_element_by_id ('next') nextButton.click
Noi putem face același lucru pentru câmpul de introducere a parolei, precum și pentru butonul Conectare. Cu toate acestea, aceste două elemente apar pe pagină numai după o tranziție animată.
Acestea fiind spuse, avem nevoie de program așteptați câteva secunde înainte de a relua căutarea elementelor. În cea mai mare parte, acest stadiu de cod nu se deosebește de cel precedent. Trebuie doar să instruim browserul așteptați maxim 10 secunde înainte de a localiza introducerea parolei.
# așteptați pentru tranziție apoi continuați să completați parolele = WebDriverWait (browser, 10). până la (EC.presence_of_element_located ((By.ID, 'Passwd'))) password.send_keys (passwordStr) signInButton = browser.find_element_by_id (' ) signInButton.click ()
Cuvintele finale
Tocmai ai terminat creând un bot care vizitează o pagină web, introduce numele dvs. de utilizator și parola și vă conectă cu succes, automatizarea întregului proces la un singur clic. Știu că a fost o simplă demonstrație, dar posibilitățile sunt nesfârșite.
În aceeași notă, ai grija despre modul în care folosești această abilitate. Unii oameni folosesc roboți și scripturi automate pentru a accesa mii de ori tombolele, fără a ține cont de termeni și condiții. Altele le folosesc pentru mai multe intenții dăunătoare.
Doar asigurați-vă că utilizați automatizarea în mod intenționat și cu atenție, pentru că este într-adevăr un necesare abilități în comunitatea de programare!
Nota editorului: Aceasta este o postare scrisă pentru Hongkiat.com de către Malik Brahimi. Malik este un dezvoltator situat în zona Greater Boston, și iubește hrana, fotbalul și programarea (limba preferată Python).
- Descărcați sursa