Selenium

Pārlūka automatizācija, izmantojot selēnu (Python)

Pārlūka automatizācija, izmantojot selēnu (Python)
SELĒNIJA ir tīmekļa un atvērtā pirmkoda rīks, kas tiek izmantots, lai kontrolētu tīmekļa pārlūku, izmantojot daudzas programmēšanas valodas. Tas ir trešās puses rīks un ir pieejams daudzām programmēšanas valodām (piemēram,.g. Java, Python, C #, PHP utt.). Tam ir atbalsts gandrīz visām pārlūkprogrammām. Šajā apmācībā mēs apskatīsim, kā lietot Selenium ar Python, jo Python nodrošina ērtu vidi šī rīka izmantošanai. Selenium API for Python ļauj jūsu programmai tieši vadīt jūsu pārlūkprogrammu līdzīgi kā to dara cilvēks. Tas var atvērt jaunas cilnes, aizpildīt informāciju, iesniegt veidlapas, noklikšķināt uz dažādām saitēm un veikt citas līdzīgas darbības. Šeit mēs redzēsim, kā mēs automatizējam savu tīmekļa pārlūkprogrammu, izmantojot selēnu ar Python.

Selēna uzstādīšana

Pirms lietošanas SELĒNIJA modulis python, mums tas ir jāinstalē. Lai to instalētu, palaidiet šo komandu terminālā.

pip instalēt selēnu

VAI

pip3 instalējiet selēnu

Tas tiks instalēts SELĒNIJA modulis, un tagad tas ir gatavs lietošanai.

Tīmekļa draiveri

Pirms tīmekļa pārlūka automatizācijas, izmantojot SELENIUM moduli, nepieciešams izvēlētā pārlūka tīmekļa draiveris. Lai automatizētu pārlūku Chrome, mums ir nepieciešams Chrome tīmekļa draiveris. Ceļš, kur ievietots tīmekļa draivera fails, tiek nodots kā arguments. Tīmekļa draiveris mijiedarbojas ar tīmekļa pārlūkprogrammu, izmantojot protokolu. Atveriet šo saiti, lai lejupielādētu dažādu pārlūkprogrammu tīmekļa draiverus.

https: // www.selēna hq.org / download /

Darba sākšana

Pēc nepieciešamo moduļu instalēšanas varat atvērt python CLI un sākt spēlēt ar savu pārlūkprogrammu. Tāpēc vispirms importēsim tīmekļa draiveri un citus moduļus, šie moduļi un klases ļaus jūsu Python programmai nosūtīt jūsu pārlūkprogrammai taustiņsitienus un citu informāciju.

C: \ Lietotāji \ Usama Azad> pitons
Python 3.6.4 (v3.6.4: d48eceb, 2017. gada 19. decembris, 06:54:40) [MSC v.1900 64 bitu (AMD64)] uz Win32
Lai iegūtu papildinformāciju, ierakstiet “help”, “copyright”, “credits” vai “licence”.
>>> no selēna importa tīmekļa draivera
>>> no selēna.tīmekļa draiveris.bieži.atslēgu importēšana
# ceļš uz jūsu hromētajiem draiveriem
>>> draiveris = tīmekļa draiveris.Chrome ('C: \ chromedriver')

Tas jums atvērs jaunu Chrome pārlūka logu. Tagad jūs varat iegūt selēnu, lai apmeklētu jebkuru vietni, izmantojot .get () metode. Šī metode atver vietni un gaidīs, līdz tā tiks ielādēta, pēc tam jūs varat ievadīt nākamo komandu.

>>> šoferis.get ("https: // www.facebook.com ")

Kā atrast elementus tīmekļa lapā

Mēs varam atrast konkrētu elementu tīmekļa lapā, izmantojot šādu metodi.

Elementu atrašana, izmantojot selēnu

Lai atrastu elementus tīmekļa lapā, mēs izmantojamatrast_elementumetode. Tālāk iratrast_elementumetodēm, kas pieejamas SELĒNIJA.

Izmantojot iepriekš minētās metodes, mēs varam atrast elementu tīmekļa lapā un izmantot to mūsu automatizācijas kodā.

Noklikšķinot uz dažādiem tīmekļa lapas elementiem

click () metodi selēnā var izmantot, lai noklikšķinātu uz dažādām saitēm un pogas elementiem, kurus atradāt, izmantojot iepriekš minētās metodes. Piemēram, jūs vēlaties noklikšķināt uz “Aizmirstais konts?”Facebook lapā

>>> saites_poga = draiveris.find_element_by_link_text ('Aizmirsts konts?')
>>> saites_poga.klikšķis()

Nosūtīt īpašās atslēgas

Selenium ir arī modulis, kas ļauj nosūtīt īpašas atslēgas (piemēram,.g, Enter, Escape, Page down, page up utt.), pārlūkojot Web. Šis modulis ir jāimportē, izmantojot šādu komandu

>>> no selēna.tīmekļa draiveris.bieži.atslēgu importēšana

Piemēram, jūs lasāt rakstu Vikipēdijā par Amerikas Savienoto Valstu vēsturi, taču esat slinks, lai pēc kāda laika nospiedtu bultiņu DOWN. Jūs varat automatizēt, nosūtot šo atslēgu pārlūkprogrammai, izmantojot Selenium

no selēna importa tīmekļa draivera
no selēna.tīmekļa draiveris.bieži.atslēgu importēšana
importa laiks
draiveris = tīmekļa draiveris.Chrome ('C: \ chromedriver')
# Atveriet raksta saiti, izmantojot metodi get
šoferis.get ("https: // lv.vikipēdija.org / wiki / United_States ")
#Sāciet no lapas sākuma
elem = šoferis.find_element_by_tag_name ('html')
kamēr patiess:
 
laiks.gulēt (5)
elem.send_keys (Atslēgas.Uz leju)

Kā automatizēt pārlūku

Šajā sadaļā mēs redzēsim, kā automatizēt mūsu tīmekļa pārlūkprogrammu, izmantojot dažus lietošanas gadījumus.

Automātiski piesakieties sociālo mediju vietnēs

Izmantojot tīmekļa automatizāciju, jūs varat viegli padarīt reģistrēšanas procesu automātisku. Ja regulāri pārbaudāt savu sociālo mediju vietnes noteiktā laikā (teiksim, plkst. 20.00), ir labi šo procesu automatizēt. Tālāk ir kods, lai automatizētu reģistrēšanu divu sociālo mediju vietņu “facebook” un “twitter” izmantošanas procesā SELĒNIJA modulis Python.

# importē tīmekļa draiveri no selēna moduļa
no selēna importa tīmekļa draivera
 
# īpašo atslēgu importēšana no selēna
no selēna.tīmekļa draiveris.bieži.atslēgu importēšana
 
# izveidot “draivera” objektu vietnei “Google-Chrome”
draiveris = tīmekļa draiveris.Chrome (“ceļš uz Chrome draiveri”)
 
# loga maksimizēšana
šoferis.maximize_window ()
 
# Facebook atvēršana
šoferis.gūt('http: // www.facebook.com')
 
# elementa “E-pasts vai tālrunis” atrašana, izmantojot atribūtu “id”
userName = draiveris.find_element_by_id ('e-pasts')
 
# Ievadiet facebook lietotājvārdu vai e-pastu
userName.send_keys ('Ievadiet lietotāja vārdu / e-pastu')
 
# elementa “Parole” atrašana, izmantojot atribūtu “id”
passWord = draiveris.find_element_by_id ('caurlaide')
 
# ievadiet paroli facebook
passWord.send_keys ("Ievadiet paroli")
 
# atrašanas 'login button' elements, izmantojot atribūtu 'id', un nospiežot 'Enter'
šoferis.find_element_by_id ('u_0_b').send_keys (Atslēgas.IEVADIET)
 
# jaunas cilnes atvēršana čivināt
šoferis.execute_script ("logs.atvērts ('http: // www.čivināt.com ',' tab2 '); ")
 
# pāreja uz jaunu cilni
šoferis.switch_to_window ('tab2')
 
#locating 'log in' elementu un noklikšķinot uz tā
šoferis.find_element_by_xpath ('// * [@ id = "doc"] / div / div [1] / div [1] / div [2] / div [1]').klikšķis()
 
# atrodiet elementu “Tālrunis, e-pasts vai lietotājvārds”
userName = draiveris.find_element_by_xpath ('// * [@ id = "page-container"] / div / div [1] / forma /
lauka iestatījums / div [1] / ievade ')
 
# ievadiet twitter lietotājvārdu
userName.send_keys ('Ievadiet lietotāja vārdu')
 
# elementa 'Parole' atrašana
passWord = draiveris.find_element_by_xpath ('// * [@ id = "page-container"] / div / div [1] / forma /
lauka iestatījums / div [2] / ievade ')
# ievadiet twitter paroli
passWord.send_keys ('Ievadiet paroli')
# atrodiet pogu 'pieteikties' un noklikšķiniet uz tās
šoferis.find_element_by_xpath ('// * [@ id = "page-container"] / div / div [1] / form / div [2] / poga')
.klikšķis()

Virs koda pārlūks tiek automatizēts, lai pieteiktos sociālo mediju vietnēs. Vispirms mēs izveidojām iecienītākās pārlūkprogrammas objektu. Šajā lietošanas gadījumā mēs pārlūku esam izvēlējušies pārlūku Chrome. Lai izveidotu objektu, mēs kā arguments izmantojām mūsu “hromedriver” ceļu. Tad mēs ievadījām facebook URL un pieteicāmies Facebook, izvēloties elementus un nododot lietotājvārdu un paroli.

Pēc tam mēs atvērām jaunu cilni un ievadījām twitter vietrādi URL. Pēc tam mēs pārslēdzāmies uz jauno cilni, jo koda vadība joprojām bija pirmajā cilnē, lai gan otrā cilne bija atvērta. Tad mēs pieteicāmies twitter, izvēloties elementus un nododot lietotājvārdu un paroli.

Iepirkšanās automatizācija tiešsaistē

Vēl viens labs pārlūka automatizācijas piemērs varētu būt iepirkšanās tiešsaistē. Piemēram, jūs vēlaties iegādāties kameru tiešsaistē, taču cenas ir pārāk augstas. Katru dienu jūs pārbaudāt, vai cena ir jūsu diapazonā vai nē. Šo uzdevumu var automatizēt, izmantojot SELĒNIJA un jūs varat izvairīties no cenas pārbaudes katru dienu. Šis kods pa pastu informēs jūs, vai jūsu vēlamā produkta cena ir pieņemama vai nē. Ja jūsu vēlamais produkts tiek pārdots, programma jums par to paziņos pa e-pastu.

# importē tīmekļa draiveri no selēna moduļa
no selēna importa tīmekļa draivera
 
# importē smtplib moduli pasta sūtīšanai
importēt smtplib
 
# pasta funkcijas definēšana, lai informētu pa e-pastu
def pasts ():
 
# izveidot savienojumu ar Gmail serveri ar domēna nosaukumu un porta numuru. 
Katram e-pasta pakalpojumu sniedzējam tas atšķiras
savienojums = smtplib.SMTP ('smtp.gmail.com ”, 587)
 
# sasveicinies ar serveri
savienojums.ehlo ()
 
# sākas šifrēts TLS savienojums
savienojums.starttls ()
 
# piesakieties Gmail serverī ar savu galveno adresi un paroli
savienojums.pieteikšanās ('sūtītāja pasta adrese', 'parole')
 
# nosūtot sev pastu, informējot jūs par kameras cenu
savienojums.sendmail ('sūtītāja pasta adrese', 'saņēmēja pasta adrese',
Temats: Jūs varat iegādāties kameru.)
 
# savienojuma izbeigšana
savienojums.atmest ()
# pasta funkcija šeit beidzas
 
# google hroma palaišana, kā argumentu norādot hromedriver ceļu
draiveris = tīmekļa draiveris.Chrome ('ceļš uz chromedriver')
 
# hromēta loga samazināšana
šoferis.minimizēt_logu ()
 
# atvēršanas draz.pk vietne
šoferis.gūt('https: // www.daraz.pk /')
 
# meklēšanas joslas elementa atrašana, izmantojot kameras meklēšanai atribūtu id
searchBar = draiveris.find_element_by_id ('q')
 
#writing camera meklēšanas joslā
meklēšanas josla.send_keys ('kamera')
 
#locating meklēšanas pogas elements, izmantojot elementa xpath
meklēt = draiveris.find_element_by_xpath ('// * [@ id = "topActionHeader"] / div / div [2] / div / div [2]
/ forma / div / div [2] / poga ')
 
#klikšķis uz meklēšanas pogas
Meklēt.klikšķis()
 
# jūsu vēlamā produkta atrašanas elements, izmantojot atribūtu xpath
produkts = draiveris.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 ')
 
# noklikšķinot uz vēlamā produkta
produktu.klikšķis()
 
# atrašanas cenas elements, izmantojot atribūtu xpath
cena = draiveris.find_element_by_xpath ('// * [@ id = "module_product_price_1"] / div / div / span')
 
# teksta iegūšana no cenu elementa. Tādējādi tiek iegūta tāda produkta cena kā Rs. 24 500 '
cena = cena.tekstu
 
# cenas konvertēšana virknē
Cena = str (cena)
 
# definē tukšu masīvu. Tas tiks izmantots, iegūstot ciparus no cenas, piemēram, “24500”
veido 'Rs. 24 500 '
skaits = []
 
# lasot visus cenu virknes ierakstus pa vienam, izmantojot cilpu
par x cenā:
 
# pārbaudīt, vai ieraksts ir cipars vai nav, jo cenā mēs vēlamies tikai ciparus
ja x.isdigit ():
 
# numuru sarakstam tiek pievienoti tikai cipari
num.pievienot (x)
 
# pievienojas visiem numuru saraksta ierakstiem. Tagad cena ir virkne, kurā ir tikai cipari
cena = ".pievienoties (skaits)
 
# cenu virknes konvertēšana uz veselu skaitli
cena = int (cena)
 
# pārbaudīt, vai cena ir pieņemama vai nē
ja cena <= 25000:
 
# zvana pasta funkcija, lai informētu jūs par cenu
pasts ()
 
# aizverošs pārlūks
šoferis.atmest ()

Virs koda tiek atvērts daraz.pk vietne un meklē kameru un informē jūs pa e-pastu, ja cena ir pieejama. Pirmkārt, mēs importējām SELĒNIJA un SMTPLIB moduļi. Tad mēs definējām 'pasta' funkciju, kas nosūta jums pastu, informējot, ka cena ir pieejama, kad tiek zvanīts.

Pēc tam mēs, izmantojot chromedriver, atvērām hroma pārlūku un meklējām 'daraz.pk '. Pēc tam mēs atrodam vēlamo produktu, izmantojot elementus un to atribūtus. Kā elementi tiek atrasti un izvietoti, tika aprakstīts iepriekš. Cena, kuru mēs saņēmām, bija virkne, tāpēc mēs pārveidojām šo virkni vesels skaitlis un pēc tam pārbaudījām, vai cena ir pieņemama vai nē. Ja cena ir pieņemama, izsauciet funkciju “pasts”.

Cron darba izveide

Virs diviem automatizācijas skriptiem ir nepieciešams palaist vienu reizi dienā noteiktā laikā. Mēs to varam pārvaldīt, izmantojot cron darbu. Crontab pievienotos uzdevumus noteiktā laikā var izpildīt atkārtoti. Lai pievienotu iepriekš minētos uzdevumus crontab, vispirms Linux Terminal palaidiet šo komandu.

[aizsargāts ar e-pastu]: ~ $ crontab -e

Virs komandas tiks atvērts rediģēšanas crontab fails. Faila beigās ievadiet šādu komandu.

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

Mēs redzam ierakstus pirms komandas no labās uz kreiso.

Tātad šī komanda darbosies katru dienu pulksten 8.

Secinājums

Šajā rakstā mēs apspriedām, kā jūs varat izmantot SELĒNIJA kopā ar Python, lai automatizētu jūsu pārlūkprogrammu, izmantojot dažādas metodes. Izmantojot to, varat automatizēt ikdienas darbu, aizpildīt veidlapas, lejupielādēt savas lietas un daudz ko citu. Mēs šeit apspriedām tikai divus piemērus, taču jūs varat automātiski pārlūkprogrammā automatizēt katru lietu, ko cilvēks var darīt.

Kā lejupielādēt un atskaņot Sid Meier Civilization VI operētājsistēmā Linux
Ievads spēlē Civilization 6 ir mūsdienīga klasiskā koncepcija, kas ieviesta Age of Empires spēļu sērijā. Ideja bija diezgan vienkārša; jūs sāktu pašā ...
Kā instalēt un spēlēt Doom uz Linux
Ievads liktenī Doom sērija radās 90. gados pēc sākotnējā Doom izlaišanas. Tas bija tūlītējs hīts, un kopš tā laika spēļu sērija ir saņēmusi daudzas ba...
Vulkan Linux lietotājiem
Ar katru jauno grafisko karšu paaudzi mēs redzam, kā spēļu izstrādātāji pārspēj grafiskās uzticamības robežas un tuvojas fotoreālismam. Neskatoties uz...