Selen

Uporaba XPath in selena za iskanje elementa na strani HTML

Uporaba XPath in selena za iskanje elementa na strani HTML
XPath, znan tudi kot jezik poti XML, je jezik za izbiro elementov iz dokumenta XML. Ker HTML in XML sledita isti strukturi dokumentov, lahko XPath uporabimo tudi za izbiro elementov s spletne strani.

Iskanje in izbira elementov na spletni strani je ključnega pomena za strganje po spletu s selenom. Za iskanje in izbiro elementov na spletni strani lahko uporabite selektorje XPath v programu Selenium.

V tem članku vam bom pokazal, kako poiskati in izbrati elemente s spletnih strani s pomočjo izbirnikov XPath v programu Selenium s knjižnico python Selenium. Torej, začnimo.

Pogoji:

Če želite preizkusiti ukaze in primere tega članka, jih morate imeti,

  1. V vašem računalniku nameščena distribucija Linuxa (po možnosti Ubuntu).
  2. Python 3 nameščen v vašem računalniku.
  3. PIP 3 nameščen v vašem računalniku.
  4. Python virtualenv paket, nameščen v računalniku.
  5. Spletni brskalniki Mozilla Firefox ali Google Chrome, nameščeni v vašem računalniku.
  6. Morate vedeti, kako namestiti gonilnik Firefox Gecko ali Chrome Web Driver.

Za izpolnjevanje zahtev 4, 5 in 6 preberite moj članek Uvod v selen v Pythonu 3. V LinuxHintu lahko najdete veliko člankov o drugih temah.com. Ne pozabite jih preveriti, če potrebujete pomoč.

Nastavitev imenika projektov:

Če želite vse organizirati, ustvarite nov imenik projektov selen-xpath / kot sledi:

$ mkdir -pv selenium-xpath / gonilniki

Pomaknite se do selen-xpath / imenik projekta, kot sledi:

$ cd selen-xpath /

Ustvarite navidezno okolje Python v imeniku projekta, kot sledi:

$ virtualenv .venv

Aktivirajte navidezno okolje na naslednji način:

$ vir .venv / bin / aktiviraj

Namestite knjižnico Selenium Python s pomočjo PIP3, kot sledi:

$ pip3 namesti selen

Prenesite in namestite ves potrebni spletni gonilnik v vozniki / imenik projekta. V članku sem razložil postopek prenosa in namestitve spletnih gonilnikov Uvod v selen v Pythonu 3.

Pridobite izbirnik XPath z orodjem za razvijalce Chrome:

V tem razdelku vam bom pokazal, kako z vgrajenim orodjem za razvijalce spletnega brskalnika Google Chrome najti izbirnik XPath elementa spletne strani, ki ga želite izbrati s selenijem.

Če želite izbirnik XPath dobiti s spletnim brskalnikom Google Chrome, odprite Google Chrome in obiščite spletno mesto, s katerega želite izvleči podatke. Nato pritisnite desni gumb miške (RMB) na prazno območje strani in kliknite na Preglejte odpreti Orodje za razvijalce za Chrome.

Lahko tudi pritisnete + Shift + jaz odpreti Orodje za razvijalce za Chrome.

Orodje za razvijalce za Chrome je treba odpreti.

Če želite poiskati predstavitev HTML-ja želenega elementa spletne strani, kliknite na Preglejte(

), kot je označeno na spodnjem posnetku zaslona.

Nato premaknite miškin kazalec nad želeni element spletne strani in pritisnite levi gumb miške (LMB), da ga izberete.

Predstavitev spletnega elementa, ki ste ga izbrali v HTML, bo označena v Elementi zavihka Orodje za razvijalce za Chrome, kot lahko vidite na spodnjem posnetku zaslona.

Če želite dobiti izbirnik XPath želenega elementa, ga izberite v Elementi zavihek Orodje za razvijalce za Chrome in z desno miškino tipko kliknite (RMB). Nato izberite Kopirati > Kopirajte XPath, kot je označeno na spodnjem posnetku zaslona.

Izbirnik XPath sem prilepil v urejevalnik besedil. Izbirnik XPath je videti, kot je prikazano na spodnjem posnetku zaslona.

Pridobite izbirnik XPath z orodjem za razvijalce Firefox:

V tem razdelku vam bom pokazal, kako z vgrajenim orodjem za razvijalce spletnega brskalnika Mozilla Firefox najti izbirnik XPath elementa spletne strani, ki ga želite izbrati s selenijem.

Če želite izbirnik XPath dobiti s spletnim brskalnikom Firefox, odprite Firefox in obiščite spletno mesto, s katerega želite izvleči podatke. Nato pritisnite desni gumb miške (RMB) na prazno območje strani in kliknite na Preglejte element (Q) odpreti Orodje za razvijalce Firefox.

Orodje za razvijalce Firefox je treba odpreti.

Če želite poiskati predstavitev HTML-ja želenega elementa spletne strani, kliknite na Preglejte(

), kot je označeno na spodnjem posnetku zaslona.

Nato premaknite miškin kazalec nad želeni element spletne strani in pritisnite levi gumb miške (LMB), da ga izberete.

Predstavitev spletnega elementa, ki ste ga izbrali v HTML, bo označena v Inšpektor zavihek Orodje za razvijalce Firefox, kot lahko vidite na spodnjem posnetku zaslona.

Če želite dobiti izbirnik XPath želenega elementa, ga izberite v Inšpektor zavihek Orodje za razvijalce Firefox in z desno miškino tipko kliknite (RMB) na njem. Nato izberite Kopirati > XPath kot je označeno na spodnjem posnetku zaslona.

Izbirnik XPath želenega elementa bi moral izgledati nekako takole.

Izdvajanje podatkov s spletnih strani s pomočjo izbirnika XPath:

V tem poglavju vam bom pokazal, kako izbrati elemente spletne strani in iz njih izvleči podatke s pomočjo izbirnikov XPath s knjižnico Selenium Python.

Najprej ustvarite nov skript Python ex01.py in vnesite naslednje vrstice kod.

iz spletnega pogona za uvoz selena
iz selena.spletni pogon.običajni.tipke za uvoz ključev
iz selena.spletni pogon.običajni.z uvozom Avtor
options = spletni pogon.Možnosti Chrome ()
opcije.brezglava = Res
brskalnik = spletni voznik.Chrome (izvršljiva_pot = "./ drivers / chromedriver ",
možnosti = možnosti)
brskalnik.get ("https: // www.unixtimestamp.com / ")
timestamp = brskalnik.find_element_by_xpath ('/ html / body / div [1] / div [1]
/ div [2] / div [1] / div / div / h3 [2] ')
print ('Trenutni časovni žig:% s'% (časovni žig.besedilo.split (") [0]))
brskalnik.zapri ()

Ko končate, shranite ex01.py Python skript.

Vrstica 1-3 uvozi vse zahtevane komponente selena.

Vrstica 5 ustvari objekt Chrome Možnosti, vrstica 6 pa omogoča brezglavi način za spletni brskalnik Chrome.

Vrstica 8 ustvari Chrome brskalnik predmet z uporabo kromedriver binarni iz vozniki / imenik projekta.

Vrstica 10 brskalniku pove, naj naloži spletno mesto unixtimestamp.com.

Vrstica 12 z izbirnikom XPath poišče element, ki vsebuje podatke o časovnem žigu s strani, in ga shrani v časovni žig spremenljivka.

Vrstica 13 razčleni podatke o časovnem žigu iz elementa in jih natisne na konzolo.

Kopiral sem izbirnik XPath označenega h2 element iz unixtimestamp.com z orodjem za razvijalce Chrome.

Vrstica 14 zapre brskalnik.

Zaženite skript Python ex01.py kot sledi:

$ python3 ex01.py

Kot vidite, se podatki o časovnem žigu natisnejo na zaslon.

Tukaj sem uporabil brskalnik.find_element_by_xpath (izbirnik) metoda. Edini parameter te metode je izbirnik, ki je izbirnik XPath elementa.

Namesto brskalnik.find_element_by_xpath () lahko uporabite tudi brskalnik.find_element (avtor, izbirnik) metoda. Ta metoda potrebuje dva parametra. Prvi parameter Avtor bo Avtor.XPATH saj bomo uporabili izbirnik XPath in drugi parameter izbirnik bo sam izbirnik XPath. Rezultat bo enak.

Da vidim, kako brskalnik.najdi_element () metoda deluje za izbirnik XPath, ustvarite nov skript Python ex02.py, kopirajte in prilepite vse vrstice iz ex01.py do ex02.py in spremembe 12. vrstica kot je označeno na spodnjem posnetku zaslona.

Kot lahko vidite, skript Python ex02.py daje enak rezultat kot ex01.py.

$ python3 ex02.py

The brskalnik.find_element_by_xpath () in brskalnik.najdi_element () metode se uporabljajo za iskanje in izbiro posameznega elementa na spletnih straneh. Če želite poiskati in izbrati več elementov s pomočjo izbirnikov XPath, morate to uporabiti brskalnik.find_elements_by_xpath () ali brskalnik.najdi_elementi () metode.

The brskalnik.find_elements_by_xpath () metoda zavzame enak argument kot brskalnik.find_element_by_xpath () metoda.

The brskalnik.najdi_elementi () metoda zavzame enake argumente kot brskalnik.najdi_element () metoda.

Oglejmo si primer pridobivanja seznama imen s pomočjo izbirnika XPath iz generator naključnih imen.info s knjižnico Selenium Python.

Neurejeni seznam (ol oznaka) ima 10 li oznake znotraj vsake, ki vsebujejo naključno ime. XPath, da izberete vse datoteke li oznake znotraj ol tag v tem primeru je // * [@ id = ”main”] / div [3] / div [2] / ol // li

Poglejmo si primer izbire več elementov s spletne strani s pomočjo izbirnikov XPath.

Ustvarite nov skript Python ex03.py in vanj vnesite naslednje vrstice kod.

iz spletnega pogona za uvoz selena
iz selena.spletni pogon.običajni.tipke za uvoz ključev
iz selena.spletni pogon.običajni.z uvozom Avtor
options = spletni pogon.Možnosti Chrome ()
opcije.brezglava = Res
brskalnik = spletni voznik.Chrome (izvršljiva_pot = "./ drivers / chromedriver ",
možnosti = možnosti)
brskalnik.get ("http: // generator naključnih imen.info / ")
names = brskalnik.find_elements_by_xpath ('
// * [@ id = "main"] / div [3] / div [2] / ol // li ')
za ime v imenih:
natisni (ime.besedilo)
brskalnik.zapri ()

Ko končate, shranite ex03.py Python skript.

Vrstica 1-8 je enaka kot v ex01.py Python skript. Torej jih ne bom več razlagal tukaj.

Vrstica 10 brskalniku pove, naj naloži spletno mesto generator naključnih imen.info.

Vrstica 12 izbere seznam imen s pomočjo brskalnik.find_elements_by_xpath () metoda. Ta metoda uporablja izbirnik XPath // * [@ id = ”main”] / div [3] / div [2] / ol // li da poiščete seznam imen. Nato je seznam imen shranjen v imena spremenljivka.

V vrsticah 13 in 14 je a za zanka se uporablja za iteracijo skozi imena seznam in natisnite imena na konzoli.

Vrstica 16 zapre brskalnik.

Zaženite skript Python ex03.py kot sledi:

$ python3 ex03.py

Kot lahko vidite, so imena povzeta s spletne strani in natisnjena na konzoli.

Namesto uporabe brskalnik.find_elements_by_xpath () lahko uporabite tudi brskalnik.najdi_elementi () kot prej. Prvi argument te metode je Avtor.XPATH, drugi argument pa je izbirnik XPath.

Za eksperimentiranje brskalnik.najdi_elementi () , ustvarite nov skript Python ex04.py, kopirajte vse kode iz ex03.py do ex04.py, in spremenite vrstico 12, kot je označeno na spodnjem posnetku zaslona.

Dobili bi enak rezultat kot prej.

$ python3 ex04.py

Osnove izbirnika XPath:

Razvijalno orodje za Firefox ali spletni brskalnik Google Chrome samodejno ustvari izbirnik XPath. Toda ti izbirniki XPath včasih ne zadoščajo za vaš projekt. V tem primeru morate vedeti, kaj določen izbirnik XPath naredi za izdelavo izbirnika XPath. V tem poglavju vam bom predstavil osnove izbirnikov XPath. Potem bi morali imeti možnost izdelati svoj izbirnik XPath.

Ustvarite nov imenik www / v imeniku vašega projekta, kot sledi:

$ mkdir -v www

Ustvari novo datoteko web01.html v www / in vnesite naslednje vrstice v to datoteko.






Osnovni dokument HTML


Pozdravljen, svet



Ko končate, shranite web01.html mapa.

Zaženite preprost strežnik HTTP na vratih 8080 z naslednjim ukazom:

$ python3 -m http.strežnik --direktorij www / 8080

Strežnik HTTP bi se moral zagnati.

Morali bi imeti dostop do web01.html datoteko z URL-jem http: // localhost: 8080 / web01.html, kot lahko vidite na spodnjem posnetku zaslona.

Medtem ko se odpre Firefox ali Chrome Developer Tool, pritisnite + F , da odprete iskalno polje. Tu lahko vtipkate izbirnik XPath in vidite, kaj zelo enostavno izbere. To orodje bom uporabljal v celotnem poglavju.

Izbirnik XPath se začne z poševnica (/) večino časa. To je kot drevo imenikov Linuxa. The / je koren vseh elementov na spletni strani.

Prvi element je html. Torej, izbirnik XPath / html izbere celoto html oznaka.

Znotraj html oznako, imamo telo oznaka. The telo oznako lahko izberete s pomočjo izbirnika XPath / html / body

The h1 glava je znotraj telo oznaka. The h1 glavo lahko izberete z izbirnikom XPath / html / body / h1

Ta tip izbirnika XPath se imenuje izbirnik absolutne poti. V izbirniku absolutne poti morate spletno stran prehoditi od korena (/) strani. Pomanjkljivost absolutnega izbirnika poti je, da lahko že zaradi majhne spremembe strukture spletnih strani vaš izbirnik XPath postane neveljaven. Rešitev te težave je relativni ali delni izbirnik XPath.

Če želite videti, kako deluje relativna ali delna pot, ustvarite novo datoteko web02.html v www / in vnesite naslednje vrstice kod v njem.






Osnovni dokument HTML


Pozdravljen, svet



to je sporočilo




Pozdravljen, svet


Ko končate, shranite web02.html datoteko in jo naložite v spletni brskalnik.

Kot lahko vidite, izbirnik XPath // div / str izbere str oznaka znotraj div oznaka. To je primer relativnega izbirnika XPath.

Relativni izbirnik XPath se začne s //. Nato določite strukturo elementa, ki ga želite izbrati. V tem primeru, div / str.

Torej, // div / str pomeni, da izberete str element znotraj a div element, ni pomembno, kaj je pred njim.

Elemente lahko izberete tudi z različnimi atributi, na primer id, razred, tip, itd. z uporabo izbirnika XPath. Poglejmo, kako to narediti.

Ustvari novo datoteko web03.html v www / in vnesite naslednje vrstice kod v njem.






Osnovni dokument HTML


Pozdravljen, svet



to je sporočilo


to je drugo sporočilo


naslov 2


Lorem ipsum dolor sit amet consectetur, adipisising elit. Quibusdam
eligendi doloribus sapiente, molestias quos quae non nam incidunt quis delectus
facilis magnifficiis alias neque atque fuga? Unde, aut natus?




to je noga


Ko končate, shranite web03.html datoteko in jo naložite v spletni brskalnik.

Recimo, da želite izbrati vse div elementi, ki imajo razred ime posoda1. Če želite to narediti, lahko uporabite izbirnik XPath // div [@ class = 'container1']

Kot lahko vidite, imam dva elementa, ki se ujemata z izbirnikom XPath // div [@ class = 'container1']

Za izbiro prvega div element z razred ime posoda1, dodajte [1] na koncu izbire XPath, kot je prikazano na spodnjem posnetku zaslona.

Na enak način lahko izberete drugega div element z razred ime posoda1 z uporabo izbirnika XPath // div [@ class = 'container1'] [2]

Elemente lahko izberete do id prav tako.

Na primer, da izberete element, ki ima id od footer-msg, lahko uporabite izbirnik XPath // * [@ id = 'footer-msg']

Tukaj * prej [@ id = 'footer-msg'] se uporablja za izbiro katerega koli elementa ne glede na njegovo oznako.

To so osnove izbirnika XPath. Zdaj bi lahko ustvarili svoj izbirnik XPath za svoje projekte Selenium.

Zaključek:

V tem članku sem vam pokazal, kako z izbirnikom XPath s knjižnico Selenium Python najdete in izberete elemente s spletnih strani. Govoril sem tudi o najpogostejših izbirnikih XPath. Po branju tega članka bi se morali počutiti precej samozavestno pri izbiri elementov s spletnih strani s pomočjo izbirnika XPath s knjižnico Selenium Python.

Namestite najnovejši Dolphin Emulator za Gamecube & Wii v Linux
Dolphin Emulator vam omogoča igranje izbranih iger Gamecube in Wii na osebnih računalnikih Linux (PC). Dolphin Emulator je prosto dostopen in odprtok...
Kako uporabljati GameConqueror Cheat Engine v Linuxu
Članek zajema vodnik o uporabi varalnice GameConqueror v Linuxu. Številni uporabniki, ki igrajo igre v sistemu Windows, pogosto uporabljajo aplikacijo...
Najboljši emulatorji igralne konzole za Linux
V tem članku bo navedena priljubljena programska oprema za emulacijo igralne konzole, ki je na voljo za Linux. Emulacija je sloj združljivosti program...