Selenium

Automatizarea browserului folosind Seleniu (Python)

Automatizarea browserului folosind Seleniu (Python)
SELENIU este un instrument bazat pe web și open source care este utilizat pentru a controla browserul web prin multe limbaje de programare. Este un instrument terță parte și este disponibil pentru multe limbaje de programare (de ex.g. Java, Python, C #, PHP etc.). Are suport pentru aproape toate browserele. În acest tutorial, vom analiza cum să utilizați Selenium cu Python, deoarece Python oferă un mediu confortabil pentru a utiliza acest instrument. API-ul Selenium pentru Python vă permite programului să vă controleze direct browserul într-un mod similar cu cel al unui om. Poate să vă deschidă file noi, să vă completeze informațiile, să trimită formulare, să facă clic pe diferite legături și alte acțiuni similare. Aici vom vedea cum ne automatizăm browserul web folosind seleniu cu Python.

Instalare seleniu

Înainte de utilizare SELENIU modul în python, trebuie să-l instalăm. Rulați următoarea comandă în terminal pentru ao instala.

pip instalează seleniu

SAU

pip3 instalează seleniu

Aceasta se va instala SELENIU modul și acum este gata de utilizare.

Drivere Web

Înainte de automatizarea browserului web utilizând modulul SELENIUM, este necesar driverul web al browserului ales. Pentru a automatiza browserul Chrome trebuie să avem un driver web Chrome. Calea, unde este plasat fișierul driverului web, este transmisă ca argument. Driverul web interacționează cu browserul web printr-un protocol. Accesați următorul link pentru a descărca drivere Web de diferite browsere.

https: // www.seleniumhq.org / download /

Noțiuni de bază

După instalarea modulelor necesare, puteți deschide python CLI și puteți începe să vă jucați cu browserul. Deci, să importăm mai întâi webdriver și alte module, aceste module și clase vor permite programului dvs. Python să trimită apăsări de taste și alte informații browserului dvs.

C: \ Users \ Usama Azad> python
Python 3.6.4 (v3.6.4: d48eceb, 19 dec. 2017, 06:54:40) [MSC v.1900 pe 64 de biți (AMD64)] pe win32
Tastați „ajutor”, „drepturi de autor”, „credite” sau „licență” pentru mai multe informații.
>>> de la selector de import webdriver
>>> din seleniu.webdriver.uzual.import chei Chei
#path către driverele dvs. Chrome
>>> driver = webdriver.Chrome („C: \ chromedriver”)

Aceasta vă va deschide o nouă fereastră de browser Chrome. Acum puteți obține seleniu pentru a accesa orice site web folosind .metoda get (). Această metodă deschide site-ul web și va aștepta încărcarea acestuia, apoi puteți introduce următoarea comandă.

>>> șofer.get ("https: // www.Facebook.com ")

Cum să găsiți elemente într-o pagină web

Putem găsi elemente specifice pe o pagină web urmând metoda.

Localizarea elementelor folosind seleniu

Pentru a localiza elemente pe o pagină web folosim „găsi_element'metoda. Următoarele suntgăsi_element'metodele disponibile în SELENIU.

Folosind metodele de mai sus, putem localiza un element pe o pagină web și îl putem folosi în codul nostru de automatizare.

Dând clic pe diferite elemente ale paginii web

metoda click () din seleniu poate fi utilizată pentru a face clic pe diferite legături și elemente de buton pe care le-ați găsit folosind metodele de mai sus. De exemplu, doriți să faceți clic pe „Cont uitat?”Pe pagina de Facebook

>>> link_button = driver.find_element_by_link_text ('Cont uitat?')
>>> link_button.clic()

Trimite chei speciale

Selenium are, de asemenea, un modul care vă permite să trimiteți chei speciale (de ex.g, Enter, Escape, Page down, page up etc) în timp ce navigați pe web. Trebuie să importați acest modul folosind următoarea comandă

>>> din seleniu.webdriver.uzual.import chei Chei

De exemplu, citiți un articol pe Wikipedia despre istoria Statelor Unite, dar sunteți prea leneși să apăsați tasta săgeată JOS după un timp. Puteți automatiza trimiterea acestei chei browserului folosind Selenium

de la selector de import webdriver
din seleniu.webdriver.uzual.import chei Chei
timpul de import
driver = webdriver.Chrome („C: \ chromedriver”)
#Deschideți linkul articolului folosind metoda get
conducător auto.get ("https: // ro.wikipedia.org / wiki / United_States ")
# Începeți de la începutul paginii
elem = șofer.find_element_by_tag_name ('html')
în timp ce este adevărat:
 
timp.somn (5)
elem.send_keys (Chei.JOS)

Cum se automatizează browserul

În această secțiune vom vedea cum să ne automatizăm browserul web cu ajutorul unor cazuri de utilizare.

Conectați-vă automat la site-urile de socializare

Cu automatizarea web, puteți face cu ușurință procesul de autentificare automat. Dacă vă verificați în mod regulat site-urile de socializare la o anumită oră (să zicem 8 pm), atunci este bine să automatizați acest proces. Următorul este codul de automatizare a procesului de conectare la utilizarea a două site-uri de social media „facebook” și „twitter” SELENIU modul în Python.

# importarea webdriver-ului din modulul seleniu
de la selector de import webdriver
 
# importarea cheilor speciale din seleniu
din seleniu.webdriver.uzual.import chei Chei
 
# crearea obiectului „driver” pentru „Google-Chrome”
driver = webdriver.Chrome („calea către driverul Chrome”)
 
# maximizarea ferestrei
conducător auto.maximize_window ()
 
# deschidere facebook
conducător auto.obține('http: // www.Facebook.com')
 
# localizarea elementului „E-mail sau telefon” folosind atributul „id”
userName = driver.find_element_by_id ('e-mail')
 
# Introducerea numelui de utilizator sau a e-mailului pentru facebook
nume de utilizator.send_keys („Introduceți numele de utilizator / e-mail”)
 
# localizarea elementului „Parolă” utilizând atributul „id”
passWord = șofer.find_element_by_id ('trece')
 
# introducerea parolei pentru facebook
parola.send_keys („Introduceți parola”)
 
# localizarea elementului „buton de conectare” utilizând atributul „id” și apăsând pe „Enter”
conducător auto.find_element_by_id ('u_0_b').send_keys (Chei.INTRODUCE)
 
# deschiderea unei noi file pentru twitter
conducător auto.execute_script ("fereastră.deschis ('http: // www.stare de nervozitate.com ',' tab2 '); ")
 
# trecerea la fila nouă
conducător auto.switch_to_window ('tab2')
 
#locating elementul „log in” și făcând clic pe el
conducător auto.find_element_by_xpath ('// * [@ id = "doc"] / div / div [1] / div [1] / div [2] / div [1]').clic()
 
# localizarea elementului „Telefon, e-mail sau nume de utilizator”
userName = driver.find_element_by_xpath ('// * [@ id = "page-container"] / div / div [1] / form /
set de câmpuri / div [1] / intrare ')
 
# introducerea numelui de utilizator pentru twitter
nume de utilizator.send_keys („Introduceți numele utilizatorului”)
 
# localizarea elementului „Parolă”
passWord = șofer.find_element_by_xpath ('// * [@ id = "page-container"] / div / div [1] / form /
set de câmpuri / div [2] / intrare ')
# introducerea parolei pentru twitter
parola.send_keys („Introduceți parola”)
# localizând butonul „log in” și făcând clic pe el
conducător auto.find_element_by_xpath ('// * [@ id = "page-container"] / div / div [1] / form / div [2] / button')
.clic()

Codul de mai sus automatizează browserul să se conecteze la site-urile de socializare. În primul rând am creat un obiect al browserului nostru preferat. În acest caz de utilizare, am luat „Chrome” ca browser. Pentru a crea obiectul am trecut calea „cromului” nostru ca argument. Apoi am introdus adresa URL a Facebook-ului și ne-am conectat la Facebook selectând elemente și trecând numele de utilizator și parola.

După aceasta, am deschis o filă nouă și am introdus adresa URL a twitter. După aceasta, am trecut la noua filă, deoarece controlul codului era încă pe prima filă, deși a doua filă era deschisă. Apoi ne-am conectat la twitter selectând elemente și trecând numele de utilizator și parola.

Automatizarea cumpărăturilor online

Un alt exemplu bun de automatizare a browserului ar putea fi cumpărăturile online. De exemplu, doriți să cumpărați o cameră online, dar prețurile sunt prea mari. Verificați în fiecare zi dacă prețul este în gama dvs. sau nu. Această sarcină poate fi automatizată folosind SELENIU și puteți evita verificarea prețului în fiecare zi. Codul următor vă va informa prin e-mail dacă prețul produsului dorit este accesibil sau nu. Dacă produsul dorit este în vânzare, programul vă va notifica printr-un e-mail.

# importarea webdriver-ului din modulul seleniu
de la selector de import webdriver
 
# importul modulului smtplib pentru trimiterea de e-mail
import smtplib
 
# definirea funcției de e-mail pentru a informa prin e-mail
def mail ():
 
# stabilirea conexiunii la serverul Gmail cu numele domeniului și numărul portului. 
Acest lucru diferă de la fiecare furnizor de e-mail
connection = smtplib.SMTP ('smtp.gmail.com., 587)
 
# salutați serverul
conexiune.ehlo ()
 
# pornirea conexiunii TLS criptate
conexiune.starttls ()
 
# conectați-vă la serverul Gmail cu adresa și parola dvs. principale
conexiune.autentificare ('adresa de e-mail a expeditorului', 'parola')
 
# trimiterea de e-mail către tine însuți care te informează despre prețul camerei
conexiune.sendmail („adresa de e-mail a expeditorului”, „adresa de e-mail a destinatarului”,
„Subiect: puteți cumpăra camera”)
 
# încheierea conexiunii
conexiune.părăsi()
Funcția # mail se încheie aici
 
# lansarea Google Chrome oferind calea chromedriver ca argument
driver = webdriver.Chrome („calea către chromedriver”)
 
# minimizarea ferestrei cromate
conducător auto.minimize_window ()
 
# deschidere draz.pk site
conducător auto.obține('https: // www.daraz.pk /')
 
# element de localizare a barei de căutare utilizând atributul id pentru a căuta camera
searchBar = șofer.find_element_by_id ('q')
 
#writing camera în bara de căutare
bara de căutare.send_keys („camera”)
 
#locating element de buton de căutare folosind xpath de element
căutare = șofer.find_element_by_xpath ('// * [@ id = "topActionHeader"] / div / div [2] / div / div [2]
/ form / div / div [2] / buton ')
 
#făcând clic pe butonul de căutare
căutare.clic()
 
# element de localizare a produsului dorit folosind atributul xpath
produs = șofer.find_element_by_xpath ('// * [@ id = "root"] / div / div [3] / div [1] / div / div [1]
/ div [2] / div [1] / div / div / div [2] / div [2] / a ')
 
# făcând clic pe produsul dorit
produs.clic()
 
# element de localizare a prețului utilizând atributul xpath
pret = sofer.find_element_by_xpath ('// * [@ id = "module_product_price_1"] / div / div / span')
 
# extragerea textului din elementul de preț. Acest lucru oferă prețul produsului, cum ar fi „Rs. 24.500 '
pret = pret.text
 
# conversia prețului în șir
Preț = str (preț)
 
# definirea unui tablou gol. Aceasta va fi utilizată în extragerea cifrelor din preț, cum ar fi „24500”
formează „Rs. 24.500 '
num = []
 
# citind toate intrările șirului de preț pe rând folosind pentru buclă
pentru x în preț:
 
# verificarea dacă intrarea este sau nu cifră, deoarece dorim doar cifre în preț
dacă x.isdigit ():
 
# adăugând doar cifre la lista de numere
num.anexa (x)
 
# alăturarea tuturor intrărilor din lista num. Acum prețul este un șir care conține doar cifre
pret = ".alătura (num)
 
# convertirea șirului de preț în număr întreg
pret = int (pret)
 
# verificarea dacă prețul este accesibil sau nu
dacă preț <= 25000:
 
# funcția de apel telefonic pentru a vă informa despre preț
Poștă()
 
# browser de închidere
conducător auto.părăsi()

Codul de mai sus se deschide daraz.pk site-ul și caută camera și vă informează prin e-mail dacă prețul este accesibil. În primul rând am importat SELENIU și SMTPLIB module. Apoi am definit funcția „e-mail” care vă trimite e-mailuri care vă informează că prețul este accesibil, atunci când sună.

După aceasta, am deschis browserul Chrome folosind chromedriver și am căutat „daraz”.pk '. Apoi localizăm produsul dorit folosind elemente și atributele acestora. Cum sunt găsite și localizate elementele, a fost descris mai sus. Prețul pe care l-am obținut a fost un șir, așa că am transformat acest șir în întreg și apoi am verificat dacă prețul este accesibil sau nu. Dacă prețul este accesibil, atunci apelați funcția „mail”.

Crearea jobului Cron

Peste două scripturi de automatizare sunt necesare pentru a rula o dată pe zi la o anumită oră. Putem gestiona acest lucru folosind jobul cron. Sarcinile care sunt adăugate la crontab pot fi rulate la un anumit moment în mod repetat. Pentru a adăuga sarcini de mai sus în crontab, rulați mai întâi următoarea comandă în Linux Terminal.

[e-mail protejat]: ~ $ crontab -e

Comanda de mai sus va deschide fișierul crontab pentru editare. La sfârșitul fișierului introduceți următoarea comandă.

0 8 * * * python / path / to / python / script

Vedem intrări înainte de comandă de la dreapta la stânga.

Deci, această comandă va rula la ora 8 zilnic.

Concluzie

În acest articol, am discutat despre modul în care puteți utiliza SELENIU împreună cu Python pentru a vă automatiza browserul folosind diferite tehnici. Puteți să vă automatizați activitatea zilnică de rutină, să completați formularele, să vă descărcați lucrurile și multe lucruri folosindu-l. Am discutat doar două exemple aici, dar puteți automatiza fiecare lucru pe care un om îl poate face manual cu browserul.

Middle mouse button not working in Windows 10
The middle mouse button helps you scroll through long webpages and screens with a lot of data. If that stops, well you will end up using the keyboard ...
How to change Left & Right mouse buttons on Windows 10 PC
It's quite a norm that all computer mouse devices are ergonomically designed for right-handed users. But there are mouse devices available which are s...
Emulate Mouse clicks by hovering using Clickless Mouse in Windows 10
Using a mouse or keyboard in the wrong posture of excessive usage can result in a lot of health issues, including strain, carpal tunnel syndrome, and ...