Selenium

Brauseri automatiseerimine seleeni (Python) abil

Brauseri automatiseerimine seleeni (Python) abil
SELEENIUM on veebipõhine ja avatud lähtekoodiga tööriist, mida kasutatakse veebibrauseri juhtimiseks paljude programmeerimiskeelte kaudu. See on kolmanda osapoole tööriist ja on saadaval paljude programmeerimiskeelte jaoks (nt.g. Java, Python, C #, PHP jne.). See toetab peaaegu kõiki brausereid. Selles õpetuses uurime, kuidas kasutada seleeni Pythoniga, kuna Python pakub selle tööriista kasutamiseks mugavat keskkonda. Pythoni Selenium API võimaldab teie programmil teie brauserit otse juhtida sarnaselt inimesele. See võib avada teile uusi vahelehti, täita oma teavet, esitada vorme, klõpsata erinevatel linkidel ja muudel sarnastel toimingutel. Siin näeme, kuidas me oma veebibrauserit Pythoni abil seleeni abil automatiseerime.

Seleeni paigaldamine

Enne kasutamist SELEENIUM moodulit, peame selle installima. Selle installimiseks käivitage terminalis järgmine käsk.

pip paigaldage seleen

VÕI

pip3 paigaldage seleen

See installitakse SELEENIUM moodul ja nüüd on see kasutamiseks valmis.

Veebidraiverid

Enne veebibrauseri automatiseerimist mooduli SELENIUM abil on vaja valitud brauseri veebidraiverit. Chrome'i brauseri automatiseerimiseks peab meil olema Chrome'i veebidraiver. Tee, kuhu veebidraiverifail paigutatakse, edastatakse argumendina. Veebidraiver suhtleb veebibrauseriga protokolli kaudu. Erinevate brauserite veebidraiverite allalaadimiseks minge järgmisele lingile.

https: // www.seleenhq.org / download /

Alustamine

Pärast vajalike moodulite installimist saate avada pythoni CLI ja hakata oma brauseriga mängima. Nii et impordime kõigepealt veebidraiveri ja muud moodulid, need moodulid ja klassid lasevad teie Pythoni programmil teie brauserisse klahvivajutusi ja muud teavet saata.

C: \ Kasutajad \ Usama Azad> python
Python 3.6.4 (v3.6.4: d48eceb, 19. detsember 2017, 06:54:40) [MSC v.1900 64-bitine (AMD64)] Win32-l
Lisateabe saamiseks sisestage "abi", "autoriõigus", "krediit" või "litsents".
>>> seleeni importimise veebidraiverilt
>>> seleenist.veebidraiver.tavaline.võtmed impordivad võtmeid
# tee oma kroomitud draiverite juurde
>>> draiver = veebidraiver.Chrome ('C: \ chromedriver')

See avab teile uue Chrome'i brauseriakna. Nüüd saate seleeni, et minna mis tahes veebisaidile .get () meetod. See meetod avab veebisaidi ja ootab selle laadimist, seejärel saate sisestada järgmise käsu.

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

Kuidas leida veebilehelt elemente

Veebilehelt saame konkreetse elemendi leida järgmise meetodi abil.

Elementide leidmine seleeni abil

Kasutatavate elementide leidmiseks veebisaidil "leida_elementmeetod. Järgmised onleida_elementaastal saadaval olevad meetodid SELEENIUM.

Kasutades ülaltoodud meetodeid, saame mõne veebisaidi elemendi üles leida ja kasutada seda oma automaatikakoodis.

Klõpsates erinevatel veebilehe elementidel

click () meetodit seleenis saab kasutada klõpsamiseks erinevatel linkidel ja nupu elementidel, mille leiate ülaltoodud meetodite abil. Näiteks soovite klõpsata nupul „Unustatud konto?”Facebooki lehel

>>> link_button = draiver.find_element_by_link_text ('Unustatud konto?')
>>> link_nupp.klõpsake ()

Saada eriklahvid

Seleenil on ka moodul, mis võimaldab teil saata spetsiaalseid võtmeid (nt.g, Enter, Escape, Page down, page up jne) veebi sirvimise ajal. Selle mooduli peate importima järgmise käsu abil

>>> seleenist.veebidraiver.tavaline.võtmed impordivad võtmeid

Näiteks loete Vikipeedias artiklit Ameerika Ühendriikide ajaloost, kuid olete liiga laisk, et mõne aja pärast nooleklahvi alla vajutada. Saate automatiseerida, saates selle võtme brauserisse, kasutades Seleeni

seleeni impordi veebidraiverilt
seleenist.veebidraiver.tavaline.võtmed impordivad võtmeid
impordiaeg
draiver = veebidraiver.Chrome ('C: \ chromedriver')
#Avage artikli link, kasutades meetodit get
autojuht.get ("https: // et.vikipeedia.org / wiki / United_States ")
#Alusta lehe algusest
elem = juht.find_element_by_tag_name ('html')
tõsi:
 
aeg.magama (5)
elem.send_keys (võtmed.ALLA)

Kuidas brauserit automatiseerida

Selles jaotises näeme, kuidas mõningate kasutusjuhtumite abil oma veebibrauserit automatiseerida.

Logige sotsiaalmeedia veebisaitidele sisse automaatselt

Veebiautomaatika abil saate sisselogimisprotsessi hõlpsalt automaatseks muuta. Kui kontrollite oma sotsiaalmeedia veebisaite kindlal kellaajal (näiteks kell 20) regulaarselt, on hea seda protsessi automatiseerida. Järgmine on kood kahe sotsiaalmeedia saidi 'facebook' ja 'twitter' abil logimise automatiseerimiseks SELEENIUM moodul Pythonis.

# veebidraiveri import seleeni moodulist
seleeni impordi veebidraiverilt
 
# spetsiaalsete võtmete import seleenist
seleenist.veebidraiver.tavaline.võtmed impordivad võtmeid
 
# Google'i Chrome'i jaoks objekti "draiver" loomine
draiver = veebidraiver.Chrome ('tee Chrome'i draiverini')
 
# akna maksimeerimine
autojuht.maximize_window ()
 
# Facebooki avamine
autojuht.saada ('http: // www.facebook.com')
 
# elemendi „E-post või telefon” leidmine atribuudi „id” abil
kasutajanimi = draiver.find_element_by_id ('e-post')
 
# Sisestades facebooki kasutajanime või e-posti aadressi
kasutajanimi.send_keys ('Sisesta kasutajanimi / e-post')
 
# elemendi 'Parool' leidmine atribuudi 'id' abil
passWord = draiver.find_element_by_id ('pass')
 
# facebooki parooli sisestamine
passWord.send_keys ("Sisesta parool")
 
# elemendi 'login button' leidmine atribuudi 'id' abil ja vajutades sisestusklahvi
autojuht.find_element_by_id ('u_0_b').send_keys (võtmed.SISENEMA)
 
# uue vahelehe avamine twitteri jaoks
autojuht.execute_script ("aken.avatud ('http: // www.twitter.com ',' tab2 '); ")
 
# vahetamine uuele vahelehele
autojuht.switch_to_window ('tab2')
 
#locating 'log in' element ja sellel klõpsamine
autojuht.find_element_by_xpath ('// * [@ id = "doc"] / div / div [1] / div [1] / div [2] / div [1]').klõpsake ()
 
# elemendi 'Telefon, e-post või kasutajanimi' leidmine
kasutajanimi = draiver.find_element_by_xpath ('// * [@ id = "page-container"] / div / div [1] / form /
väli / div [1] / sisend ')
 
# Twitteri kasutajanime sisestamine
kasutajanimi.send_keys ('Sisesta kasutajanimi')
 
# elemendi 'Parool' leidmine
passWord = draiver.find_element_by_xpath ('// * [@ id = "page-container"] / div / div [1] / form /
väli / div [2] / sisend ')
# twitteri parooli sisestamine
passWord.send_keys ('Sisesta parool')
# leidke nupp 'Logi sisse' ja klõpsake sellel
autojuht.find_element_by_xpath ('// * [@ id = "page-container"] / div / div [1] / form / div [2] / nupp')
.klõpsake ()

Eespool toodud kood automatiseerib brauseri sotsiaalmeedia veebisaitidele sisselogimiseks. Kõigepealt lõime oma lemmikbrauseri objekti. Sellisel juhul oleme brauseriks võtnud Chrome'i. Objekti loomiseks läbisime argumendina oma 'kromedriveri' tee. Seejärel sisestasime facebooki URL-i ja logisime Facebooki sisse, valides elemendid ning edastades kasutajanime ja parooli.

Pärast seda avasime uue vahelehe ja sisestasime twitteri URL-i. Pärast seda läksime üle uuele vahelehele, kuna koodi juhtimine oli endiselt esimesel vahelehel, kuigi teine ​​vaheleht oli avatud. Seejärel logisime Twitterisse sisse, valides elemendid ning edastades kasutajanime ja parooli.

Veebipõhine ostude automatiseerimine

Veel üks hea näide brauseri automatiseerimisest võib olla veebiostud. Näiteks soovite osta kaamera veebist, kuid hinnad on liiga kõrged. Iga päev kontrollite, kas hind on teie vahemikus või mitte. Selle ülesande saab automatiseerida SELEENIUM ja saate vältida hinna kontrollimist iga päev. Järgmine kood teavitab teid posti teel, kas teie soovitud toote hind on taskukohane või mitte. Kui teie soovitud toode on müügil, teavitab programm teid sellest e-posti teel.

# veebidraiveri import seleeni moodulist
seleeni impordi veebidraiverilt
 
# smtplib mooduli importimine kirjade saatmiseks
import smtplib
 
# e-posti teel teavitamise funktsiooni määratlemine
def post ():
 
# ühenduse loomine gmaili serveriga domeeninime ja pordinumbriga. 
See erineb igal e-posti pakkujal
ühendus = smtplib.SMTP ('smtp.gmail.com ", 587)
 
# tere serverile
ühendus.ehlo ()
 
# krüptitud TLS-ühenduse alustamine
ühendus.starttls ()
 
# logige sisse gmaili serverisse oma peamise aadressi ja parooliga
ühendus.login ('saatja e-posti aadress', 'parool')
 
# saadate endale kaamera, milles teavitate teid kaamera hinnast
ühendus.sendmail ('saatja posti aadress', 'vastuvõtja posti aadress',
Teema: saate kaamera osta)
 
# ühendus lõpetatakse
ühendus.lõpetage ()
# meilifunktsioon lõpeb siin
 
# google chromi käivitamine, esitades argumendina chromedriveri tee
draiver = veebidraiver.Chrome ('tee chromedriverini')
 
# kroomitud akna minimeerimine
autojuht.minimeeri_aken ()
 
# avamine draž.pk sait
autojuht.saada ('https: // www.daraz.pk /')
 
# otsinguriba elementi leidmine, kasutades kaamera otsimiseks atribuuti id
searchBar = draiver.find_element_by_id ('q')
 
#kirjutuskaamera otsinguribal
otsinguriba.send_keys ('kaamera')
 
#locating otsingunupu element, kasutades elemendi xpath
otsing = draiver.find_element_by_xpath ('// * [@ id = "topActionHeader"] / div / div [2] / div / div [2]
/ vorm / div / div [2] / nupp ')
 
#otsingu nupu klõpsamine
otsing.klõpsake ()
 
# soovitud toote asukoha element atribuudi xpath abil
toode = draiver.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 ')
 
# klõpsates soovitud toodet
toote.klõpsake ()
 
# hinna elemendi leidmine atribuudi xpath abil
hind = juht.find_element_by_xpath ('// * [@ id = "moodulitoode_hind_1"] / div / div / span')
 
# teksti eraldamine hinnaelemendist. See annab toote nagu Rs hinna. 24 500 '
hind = hind.teksti
 
# hinna teisendamine stringiks
Hind = str (hind)
 
# tühja massiivi määratlemine. Seda kasutatakse numbritest vormi hinna väljavõtmiseks, näiteks '24500'
vormi 'Rs. 24 500 '
arv = []
 
# loeb kõik hinnistringi kirjed ükshaaval silmusena
x-i jaoks hinnas:
 
# kontrollime, kas kirje on arvuline või mitte, kuna soovime, et hinnas oleksid ainult numbrid
kui x.isdigit ():
 
# lisab loendisse ainult numbreid
arv.lisa (x)
 
# numbriloendi kõigi kirjetega liitumine. Nüüd on hind string, mis sisaldab ainult numbreid
hind = ".liitu (arv)
 
# hinna stringi teisendamine täisarvuks
hind = int (hind)
 
# kontrollige, kas hind on taskukohane või mitte
kui hind <= 25000:
 
# helistamisfunktsioon hinna teavitamiseks
post ()
 
# brauser
autojuht.lõpetage ()

Koodi kohal avaneb daraz.pk sait ja otsib kaamerat ning teavitab teid e-posti teel, kui hind on taskukohane. Esiteks importisime SELEENIUM ja SMTPLIB moodulid. Seejärel määratlesime funktsiooni "post", mis saadab teile helistades teile posti, teatades teile, et hind on taskukohane.

Pärast seda avasime chromeedriveri abil kroomibrauseri ja otsisime sõna 'daraz.pk '. Seejärel leiame soovitud toote elementide ja nende atribuutide abil. Elementide leidmise ja paiknemise viisi on kirjeldatud eespool. Hind, mille saime, oli string, nii et teisendasime selle stringi täisarvuks ja seejärel kontrollisime, kas hind on taskukohane või mitte. Kui hind on taskukohane, helistage funktsiooni „mail”.

Croni töökoha loomine

Üle kahe automaatika skripti on vaja käivitada üks kord päevas kindlal kellaajal. Saame seda hallata croni töö abil. Crontabile lisatud ülesandeid saab kindla aja jooksul korduvalt käivitada. Eespool nimetatud ülesannete lisamiseks crontabisse käivitage kõigepealt järgmine käsk Linuxi terminalis.

[meiliga kaitstud]: ~ $ crontab -e

Ülal käsk avab redigeerimiseks crontab-faili. Sisestage faili lõpus järgmine käsk.

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

Näeme sisestusi enne käsku paremalt vasakule.

Nii et see käsk töötab iga päev kell 8.

Järeldus

Selles artiklis me arutasime, kuidas saate seda kasutada SELEENIUM koos Pythoniga oma brauseri automatiseerimiseks, kasutades erinevaid tehnikaid. Selle abil saate oma igapäevast rutiinset tööd automatiseerida, vorme täita, oma asju ja palju muud alla laadida. Arutasime siin ainult kahte näidet, kuid saate iga inimese brauseriga käsitsi automatiseerida.

Kursor hüppab või liigub juhuslikult Windows 10-s kirjutamise ajal
Kui leiate, et hiire kursor hüppab või liigub Windowsi sülearvutisse või arvutisse kirjutades automaatselt, juhuslikult, võivad mõned neist soovituste...
Kuidas muuta hiire ja puuteplaatide kerimise suund Windows 10-s ümber
Hiir ja PuuteplaatNeed muudavad arvutamise mitte ainult lihtsaks, vaid ka tõhusamaks ja vähem aeganõudvaks. Me ei kujuta ette elu ilma nende seadmetet...
Kuidas muuta hiirekursori ja kursori suurust, värvi ja skeemi Windows 10-s
Windows 10 hiirekursor ja kursor on operatsioonisüsteemi väga olulised aspektid. Seda võib öelda ka teiste opsüsteemide kohta, nii et tegelikult pole ...