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ēnuVAI
pip3 instalējiet selēnuTas 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> pitonsPython 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.
- Vispirms nospiediet taustiņu F12 Avota lapa tiek atvērta loga labajā pusē, kā parādīts zemāk
- Tagad nospiediet 'Ctrl + Shift + Cvai noklikšķiniet uz simbola, kas atrodas avota lapas augšējā kreisajā stūrī.
- Pārvietot bultiņu uz 'E-pasts vai tālrunisun noklikšķiniet uz. Šis elements tiks atlasīts un šī elementa pirmkods tiks izcelts avota lapā, kā parādīts zemāk. Var redzēt, ka mums ir šādi atlasītā elementa atribūti
- name = “e-pasts”
- class = “inputtext login_form_input_box”
- id = “e-pasts”
Mēs varam atrast 'E-pasts vai tālrunis', izmantojot kādu no iepriekš minētajiem atribūtiem.
- Ja mums nav neviena no iepriekš minētajiem atribūtiem, mēs varam arī atlasīt elementu, izmantojot 'XPath". Lai kopētu XPath, ar peles labo pogu noklikšķiniet uz iezīmētā avota koda avota lapā. Tad dodieties uzKopēt> Kopēt XPath".
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.
- find_element_by_class_name (vārds)
- find_element_by_tag_name (vārds)
- find_element_by_link_text (teksts)
- find_element_by_css_selector (atlasītājs)
- find_element_by_name (vārds)
- find_element_by_id (id)
- find_element_by_xpath (XPath)
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ēšanaPiemē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 draiverano 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ļano 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ļano 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 -eVirs komandas tiks atvērts rediģēšanas crontab fails. Faila beigās ievadiet šādu komandu.
0 8 * * * python / path / to / python / scriptMēs redzam ierakstus pirms komandas no labās uz kreiso.
- Pirmā zvaigznīte no labās puses nozīmē, ka šī komanda darbosies katru dienu nedēļā.
- Otrā zvaigznīte nozīmē, ka šī komanda darbosies katru mēnesi
- Trešā zvaigznīte rāda, ka šī komanda darbosies katru mēneša dienu
- Ceturtais ieraksts ir “8”, kas nozīmē, ka šis skripts darbosies dienas 8. stundā
- Piektais ieraksts, kas ir “0”, nozīmē, ka šī komanda darbosies 0. minūtē.
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.