Selenium

Elementide asukoha määramine CSS-i selektorite abil seleeniga

Elementide asukoha määramine CSS-i selektorite abil seleeniga
Veebilehelt elementide leidmine ja valimine on seleeniga veebi kraapimise võti. Veebilehelt elementide leidmiseks ja valimiseks võite kasutada seleenis CSS-i valijaid.Selles artiklis näitan teile, kuidas leida ja valida elemente veebilehtedelt, kasutades seleeni CSS-valijaid Selenium pythoni teegiga. Alustame siis.

Eeldused:

Selle artikli käskude ja näidete proovimiseks peab teil olema,

1) teie arvutisse installitud Linuxi levitamine (eelistatult Ubuntu).
2) teie arvutisse installitud Python 3.
3) PIP 3 arvutisse installitud.
4) Python virtualenv arvutisse installitud pakett.
5) teie arvutisse installitud Mozilla Firefoxi või Google Chrome'i veebibrauserid.
6) Peab teadma, kuidas installida Firefox Gecko draiver või Chrome'i veebidraiver.

Nõuete 4, 5 ja 6 täitmiseks lugege minu artiklit Sissejuhatus seleeni koos Python 3-ga kell Linuxhint.com.

LinuxHintist leiate palju artikleid muudel teemadel.com. Kontrollige neid kindlasti, kui vajate abi.

Projektikataloogi seadistamine:

Et kõik oleks korrastatud, looge uus projektikataloog seleen-css-selector / järgnevalt:

$ mkdir -pv selenium-css-selector / draiverid

Navigeerige lehele seleen-css-selector / projekti kataloog järgmiselt:

$ cd seleen-css-selektor /

Looge projekti kataloogis Pythoni virtuaalne keskkond järgmiselt:

$ virtualenv .venv

Aktiveerige virtuaalne keskkond järgmiselt:

allikas $ .venv / bin / aktiveeri

Installige Selenium Pythoni teek PIP3 abil järgmiselt:

$ pip3 installige seleen

Laadige alla ja installige kõik vajalikud veebidraiverid autojuhid / projekti kataloog. Olen oma artiklis selgitanud veebidraiverite allalaadimise ja installimise protsessi Sissejuhatus seleeni koos Python 3-ga. Kui vajate abi, otsige Linuxi vihje.com selle artikli jaoks.

Hankige CSS-i valija Chrome'i arendaja tööriista abil:

Selles jaotises näitan teile, kuidas leida Google Chrome'i veebibrauseri sisseehitatud arendaja tööriista abil Seleniumiga selle veebilehe elemendi CSS-valija.

Google Chrome'i veebibrauseri abil CSS-valija saamiseks avage Google Chrome ja külastage veebisaiti, kust soovite andmeid välja võtta. Seejärel vajutage hiire paremat nuppu (RMB) lehe tühjale alale ja klõpsake nuppu Kontrollige avamiseks Chrome'i arendaja tööriist.

Võite ka vajutada + Shift + Mina avamiseks Chrome'i arendaja tööriist.

Chrome'i arendaja tööriist tuleks avada.

Soovitud veebilehe elemendi HTML-esituse leidmiseks klõpsake nuppu Kontrollige() ikoon, nagu on märgitud alloleval ekraanipildil.

Seejärel hõljutage kursorit soovitud veebilehe elemendi kohal ja vajutage selle valimiseks hiire vasakut nuppu (LMB).

Valitud veebielemendi HTML-esitus tõstetakse esile Elemendid vahekaart Chrome'i arendaja tööriist nagu näete alloleval ekraanipildil.

Soovitud elemendi CSS-valija saamiseks valige element Elemendid vahekaart Chrome'i arendaja tööriist ja paremklõpsake sellel (RMB). Seejärel valige Kopeeri > Kopeeri valija nagu on märgitud alloleval ekraanipildil.

Olen CSS-i valija kleebinud tekstiredaktorisse. CSS-i valija näeb välja nagu alloleval ekraanipildil näidatud.

Hankige CSS-i valija Firefoxi arendaja tööriista abil:

Selles jaotises näitan teile, kuidas leida selle veebilehe elemendi CSS-valija, mille soovite Seleniumiga valida, kasutades Mozilla Firefoxi veebibrauseri sisseehitatud arendaja tööriista.

CSS-valija saamiseks Firefoxi veebibrauseri abil avage Firefox ja külastage veebisaiti, kust soovite andmeid välja võtta. Seejärel vajutage hiire paremat nuppu (RMB) lehe tühjale alale ja klõpsake nuppu Kontrollige elementi (Q) avamiseks Firefoxi arendaja tööriist.

Firefoxi arendaja tööriist tuleks avada.

Soovitud veebilehe elemendi HTML-esituse leidmiseks klõpsake nuppu Kontrollige() ikoon, nagu on märgitud alloleval ekraanipildil.

Seejärel hõljutage kursorit soovitud veebilehe elemendi kohal ja vajutage selle valimiseks hiire vasakut nuppu (LMB).

Valitud veebielemendi HTML-esitus tõstetakse esile Inspektor vahekaart Firefoxi arendaja tööriist nagu näete alloleval ekraanipildil.

Soovitud elemendi CSS-valija saamiseks valige element Inspektor vahekaart Firefoxi arendaja tööriist ja paremklõpsake sellel (RMB). Seejärel valige Kopeeri > CSS-i valija nagu on märgitud alloleval ekraanipildil.

Teie soovitud elemendi CSS-valija peaks välja nägema umbes selline.

Andmete ekstraheerimine seleeniga CSS-valija abil:

Selles jaotises näitan teile, kuidas valida veebilehe elemente ja neist andmeid välja võtta, kasutades CSS-selektoreid koos Selenium Pythoni teegiga.

Kõigepealt looge uus Pythoni skript ex00.py ja sisestage järgmised koodiread.

seleeni impordi veebidraiverilt
seleenist.veebidraiver.tavaline.võtmed impordivad võtmeid
seleenist.veebidraiver.tavaline.impordi teel
valikud = veebidraiver.ChromeOptions ()
valikud.peata = tõsi
brauser = veebidraiver.Chrome (käivitatava_tee = "./ draiverid / chromedriver ", valikud = valikud)
brauser.get ("https: // www.unixtimestamp.com / ")
ajatempel = brauser.find_element_by_css_selector ('h3.tekst-oht: n-nda laps (3) ')
print ('Praegune ajatempel:% s'% (ajatempel.teksti.jaotus (") [0]))
brauser.Sulge()

Kui olete valmis, salvestage ex00.py Pythoni skript.

Rida 1-3 impordib kõik vajalikud seleeni komponendid.

Rida 5 loob Chrome'i suvandite objekti ja rida 6 võimaldab Chrome'i veebibrauseri jaoks peata režiimi.

8. rida loob Chrome'i brauser objekt, kasutades kromedriver binaarne autojuhid / projekti kataloog.

Rida 10 käsib brauseril laadida veebisaidi unixtimestamp.com.

Rida 12 leiab elemendi, millel on lehe ajatempli andmed CSS-i valija abil, ja salvestab selle lehele ajatempel muutuv.

Rida 13 sõelub elemendi ajatempli andmed ja prindib need konsoolile.

Nii toimib UNIX-i ajatempli andmete HTML-struktuur unixtimestampis.com näeb välja.

14. rida sulgeb brauseri.

Käivitage Pythoni skript ex00.py järgnevalt:

$ python3 ex00.py

Nagu näete, prinditakse ajatempli andmed ekraanile.

Siin olen kasutanud brauser.find_element (Autor, valija) meetod.

Kuna kasutame CSS-valijaid, on esimene parameeter Kõrval.CSS_SELECTOR ja teine ​​parameeter on CSS-i selektor ise.

Selle asemel brauser.find_element () meetodit, võite kasutada ka brauser.find_element_by_css_selector (valija) meetod. See meetod vajab töötamiseks ainult CSS-valijat. Tulemus on sama.

The brauser.find_element () ja brauser.find_element_by_css_selector () meetodeid kasutatakse veebilehelt ühe elemendi leidmiseks ja valimiseks. Kui soovite CSS-selektorite abil leida ja valida mitu elementi, peate seda kasutama brauser.find_elements () ja brauser.find_elements_by_css_selector () meetodid.

The brauser.find_elements () meetod võtab samad argumendid nagu brauser.find_element () meetod.

The brauser.find_elements_by_css_selector () meetod võtab sama argumendi nagu brauser.find_element_by_css_selector () meetod.

Vaatame näidete nimekirja väljavõtmist CSS-valijatega juhuslike nimede generaatorist.info seleeniga.

Nagu näete, on tellimata loendil klassi nimi nimekiri. Niisiis saame kasutada CSS-i valijat .nameList li kõigi nimede valimiseks veebilehelt.

Vaatame läbi näite mitme elemendi valimisest veebilehelt CSS-valijate abil.

Looge uus Pythoni skript ex01.py ja tippige sinna järgmised koodiread.

seleeni impordi veebidraiverilt
seleenist.veebidraiver.tavaline.võtmed impordivad võtmeid
seleenist.veebidraiver.tavaline.impordi teel
valikud = veebidraiver.ChromeOptions ()
valikud.peata = tõsi
brauser = veebidraiver.Chrome (käivitatava_tee = "./ draiverid / chromedriver ", valikud = valikud)
brauser.get ("http: // juhuslik-nimi-generaator.info / ")
nimed = brauser.find_elements (Autor.CSS_SELECTOR, '.nameList li ')
nimi nimedes:
Prindi nimi.tekst)
brauser.Sulge()

Kui olete valmis, salvestage ex01.py Pythoni skript.

Rida 1–8 on sama, mis joonisel ex00.py Pythoni skript. Nii et ma ei hakka neid siin uuesti lahti seletama.

Rida 10 käsib brauseril veebisaidi juhuslike nimede generaatorit laadida.info.

Rida 12 valib nimede loendi, kasutades brauser.find_elements () meetod. See meetod kasutab CSS-valijat .nameList li nimede loendi leidmiseks. Seejärel salvestatakse nimede loend kausta nimed muutuv.

Ridades 13 ja 14 a eest silmust kasutatakse iteratsiooni kaudu nimed nimekiri ja printige nimed konsoolile.

16. rida sulgeb brauseri.

Käivitage Pythoni skript ex01.py järgnevalt:

$ python3 ex01.py

Nagu näete, eraldatakse nimed veebilehelt ja trükitakse konsoolile.

Selle asemel, et kasutada brauser.find_elements () meetodit, saate kasutada ka brauser.find_elements_by_css_selector () meetodit nagu varem. See meetod vajab töötamiseks ainult CSS-valijat. Tulemus on sama.

CSS-i valijate põhitõed:

Veebilehe elemendi CSS-valija leiate alati Firefoxi või Chrome'i veebibrauseri arendaja tööriista abil. See automaatselt loodud CSS-i valija ei pruugi olla see, mida soovite. Mõnikord peate võib-olla kirjutama oma CSS-valija.

Selles osas räägin CSS-i valijate põhitõdedest, et saaksite aru saada, mida teatud CSS-i valija veebilehelt valib, ja kirjutage vajadusel oma kohandatud CSS-valija.

Kui soovite veebisaidilt valida ID-ga elemendi sõnum, CSS-i valija on #sõnum.

CSS-i valija .roheline valib elemendi, kasutades klassi nime roheline.

Kui soovite valida elemendi (klass sõnum) teise elemendi (klass konteiner), on CSS-i valija .konteiner .sõnum

CSS-i valija .sõnum.edu valib elemendi, millel on kaks CSS-klassi sõnum ja edu.

Kõigi valimiseks lk siltide abil saate kasutada CSS-i valijat lk.

Ainult lk sildid div siltide abil saate kasutada CSS-i valijat div lk

Valimiseks lk sildid, mis on div siltide abil saate kasutada CSS-i valijat div> lk

Kõigi valimiseks span ja lk siltide abil saate kasutada CSS-i valijat p, span

Valimiseks lk silt kohe pärast div märgendit, saate kasutada CSS-i valijat div + lk

Valimiseks lk silt pärast div märgendit, saate kasutada CSS-i valijat div ~ lk

Kõigi valimiseks lk sildid, millel on klassi nimi sõnum, saate kasutada CSS-valijat lk.sõnum

Kõigi valimiseks span sildid, millel on klassi nimi sõnum, saate kasutada CSS-valijat span.sõnum

Kõigi atribuudiga elementide valimiseks href, saate kasutada CSS-valijat [href]

Atribuudiga elemendi valimiseks nimi ja väärtus nimi atribuut on kasutajanimi, saate kasutada CSS-valijat [nimi = ”kasutajanimi”]

Kõigi atribuudiga elementide valimiseks alt ja väärtus alt alamstringi sisaldav atribuut vscode, saate kasutada CSS-valijat [alt ~ = ”vscode”]

Kõigi elementide valimiseks, millel on href atribuut ja väärtus href atribuut algab stringiga https, saate kasutada CSS-valijat [href ^ = ”https”]

Kõigi elementide valimiseks, millel on href atribuut ja väärtus href stringiga lõppev atribuut .com, saate kasutada CSS-valijat [href $ = ".com ”]

Kõigi elementide valimiseks, millel on href atribuut ja väärtus href atribuudil on alamstring google, saate kasutada CSS-valijat [href * = ”google”]

Kui soovite valida esimese li silt sildi sees ul märgendit, saate kasutada CSS-i valijat ul li: esiklaps

Kui soovite valida esimese li silt sildi sees ul märgendit, saate kasutada ka CSS-valijat ul li: n-nd laps (1)

Kui soovite valida viimase li silt sildi sees ul märgendit, saate kasutada CSS-i valijat ul li: viimane laps

Kui soovite valida viimase li silt sildi sees ul märgendit, saate kasutada ka CSS-valijat ul li: n-viimane laps (1)

Kui soovite valida teise li silt sildi sees ul algusest peale saate kasutada CSS-i valijat ul li: n-nda laps (2)

Kui soovite valida kolmanda li silt sildi sees ul algusest peale saate kasutada CSS-i valijat ul li: n-nda laps (3)

Kui soovite valida teise li silt sildi sees ul lõpust alates saate kasutada CSS-i valijat ul li: n-viimane laps (2)

Kui soovite valida kolmanda li silt sildi sees ul lõpust alates saate kasutada CSS-i valijat ul li: n-viimane laps (3)

Need on kõige tavalisemad CSS-i valijad. Leiate, et kasutate neid peaaegu kõigis Seleeni projektides. CSS-i valijaid on palju rohkem. Kõigi nende loendi leiate w3koolidest.com CSS-i selektorite viide.

Järeldus:

Selles artiklis olen näidanud, kuidas leida ja valida veebilehe elemente, kasutades seleeniga CSS-valijaid. Olen arutanud ka CSS-i selektorite põhitõdesid. Seleniumi projektide jaoks peaksite saama mugavalt kasutada CSS-valijaid.

How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...
X-Mouse Button Control abil saate hiire nupud erinevates tarkvarades erinevalt ümber teha
Võib-olla vajate tööriista, mis võiks muuta teie hiire juhtimissüsteemi iga kasutatava rakendusega. Sel juhul võite proovida rakendust nimega X hiiren...
Microsoft Sculpt Touch juhtmeta hiirte ülevaade
Lugesin hiljuti Microsoft Sculpt Touch juhtmevaba hiir ja otsustas selle osta. Pärast mõnda aega kasutamist otsustasin jagada sellega oma kogemusi. Se...