Selén

Používanie selénu s ovládačom Firefox

Používanie selénu s ovládačom Firefox
Selén je vynikajúci nástroj na testovanie prehľadávačov, automatizáciu webu a škrabanie webu. Selén dokáže ovládať väčšinu moderných webových prehľadávačov. i.e., Firefox, Chrome, Chromium, Opera, Apple Safari. Na ovládanie prehliadača potrebuje Selenium nástroj s názvom Web driver. Väčšina moderných dodávateľov prehľadávačov poskytuje softvér webových ovládačov pre svoje webové prehľadávače.

Ak chcete ovládať webový prehliadač Mozilla Firefox od spoločnosti Selenium, musíte použiť webový ovládač Gecko.

V tomto článku vám ukážem, ako nastaviť selén na vykonávanie testov prehľadávača, automatizáciu webu, škrabanie webu pomocou webového prehliadača Mozilla Firefox. Takže poďme na to.

Predpoklady:

Ak chcete vyskúšať príkazy a príklady tohto článku, musíte mať,

1) Vo vašom počítači je nainštalovaná distribúcia Linuxu (najlepšie Ubuntu).
2) Vo vašom počítači je nainštalovaný Python 3.
3) Vo vašom počítači je nainštalovaný program PIP 3.
4) Vo vašom počítači je nainštalovaný Mozilla Firefox.

Na stránkach LinuxHint nájdete veľa článkov o týchto témach.com. Ak potrebujete pomoc, nezabudnite ich skontrolovať.

Príprava virtuálneho prostredia Pythonu 3 na projekt:

Virtuálne prostredie Python sa používa na vytvorenie izolovaného adresára projektu Python. Moduly Pythonu, ktoré inštalujete pomocou PIP, sa nainštalujú iba do adresára projektu, nie globálne.

Python virtualenv modul slúži na správu virtuálnych prostredí Pythonu.

Môžete si nainštalovať Python virtualenv modul globálne pomocou PIP 3 nasledovne:

$ sudo pip3 nainštalovať virtualenv

Python virtualenv by mali byť nainštalované.

Vytvorte adresár projektu selén-firefox / vo vašom aktuálnom pracovnom adresári takto:

$ mkdir -pv selenium-firefox / ovládače

Prejdite do novo vytvoreného adresára projektu selén-firefox / nasledovne:

$ cd selenium-firefox /

Vytvorte virtuálne prostredie Pythonu v adresári projektu pomocou nasledujúceho príkazu:

$ virtualenv .venv

Virtuálne prostredie Python by malo byť vytvorené v adresári projektu.

Aktivujte virtuálne prostredie Pythonu z adresára projektu pomocou nasledujúceho príkazu:

$ zdroj .env / bin / aktivovať

Inštalácia selénovej knižnice Python:

Knižnica selénu je k dispozícii v oficiálnom úložisku Python PyPI.

Knižnicu Selenium Python môžete nainštalovať pomocou PIP 3 nasledovne:

$ pip3 nainštalujte selén

Knižnica Selenium Python by mala byť nainštalovaná.

Inštalácia ovládača Firefox Gecko:

Ak si chcete stiahnuť ovládač Firefox Gecko, navštívte stránku vydávania GitHubu stránky mozilla / geckodriver z vášho obľúbeného webového prehliadača.

Ako vidíte, v0.26.0 je v čase písania tohto článku najnovšou verziou ovládača Firefox Gecko.

Ak chcete prevziať ovládač Firefox Gecko, posuňte sa trochu nadol a kliknite na tar Linux geckodriver.archív gz v závislosti od architektúry operačného systému.

Ak používate 32-bitový operačný systém, kliknite na ikonu geckodriver-v0.26.0-linux32.decht.gz odkaz.

Ak používate 64-bitový operačný systém, kliknite na ikonu geckodriver-v0.26.0-linuxx64.decht.gz odkaz.

Stiahnem si 64-bitovú verziu ovládača Firefox Gecko.

Prehliadač by vás mal vyzvať na uloženie archívu. Vyberte Uloženie súboru a kliknite na Ok.

Mal by sa stiahnuť ovládač Firefox Gecko.

Archív ovládačov Firefox Gecko by sa mal stiahnuť v ~ / Súbory na stiahnutie adresár.

Môžete extrahovať geckodriver-v0.26.0-linux64.decht.gz archív z ~ / Súbory na stiahnutie adresár do vodiči / adresára projektu pomocou nasledujúceho príkazu:

$ tar -xzf ~ / Na stiahnutie / geckodriver-v0.26.0-linux64.decht.gz -C vodiči /

Po rozbalení archívu ovládača Firefox Gecko sa vytvorí nový binárny súbor geckodriver by mala byť vytvorená v vodiči / adresára vášho projektu, ako vidíte na snímke obrazovky nižšie.

Začíname so selénom pomocou ovládača Firefox Gecko:

V tejto časti vám ukážem, ako nastaviť váš prvý skript selénu Python na testovanie funkčnosti ovládača Firefox Gecko.

Najskôr vytvorte nový skript v jazyku Python ex00.py do adresára projektu a zadajte do neho nasledujúce riadky.

z webového ovládača na selén na import
zo selénu.webdriver.bežné.kľúče na import kľúčov
prehliadač = webdriver.Firefox (executable_path = "./ drivers / geckodriver ")
prehliadač.get ('https: // www.linuxhint.com ')
print ('Názov:% s'% prehliadač.názov)
prehliadač.skončiť ()

Po dokončení uložte ex00.py Skript v jazyku Python.

Riadky 1 a 2 importujú všetky požadované komponenty z selén Knižnica Python.

Riadok 4 vytvára objekt webového ovládača Firefox pomocou webdriver.Firefox () metódou a uloží ju do a prehliadač premenná. The spustiteľná_cesta Argument sa používa na to, aby webový ovládač povedal, kde má hľadať binárny súbor Firefox Gecko Driver. V takom prípade geckodriver binárne z vodiči / adresár projektu.

Na riadku 6, prehliadač.dostať () metóda sa načíta linuxhint.com vo webovom prehliadači Firefox.

Po dokončení načítania webovej stránky sa na riadku 7 vytlačí názov webovej stránky tu, prehliadač.titul vlastnosť sa používa na prístup k názvu webovej stránky.

Riadok 8 uzatvára webový prehliadač Firefox pomocou prehliadač.skončiť () metóda.

Môžete spustiť skript Python ex00.py nasledujúcim príkazom:

$ python3 ex00.py

Selenium by mal otvoriť webový prehliadač Firefox a navštíviť linuxhint.com automaticky.

Po načítaní stránky by sa mala na konzole vytlačiť jej názov a webový prehliadač by sa mal automaticky zavrieť.

Selenium teda s ovládačom Firefox Gecko pracuje správne.

Príklad 01: Spustenie prehliadača Firefox v bezhlavom režime pomocou selénu

Selenium môžete tiež spustiť s ovládačom Firefox Gecko Driver v bezhlavom režime. Bezhlavý režim Selenium Firefox nevyžaduje žiadne grafické používateľské rozhranie nainštalované vo vašom počítači. Selenium Firefox teda budete môcť spustiť na ľubovoľných bezhlavých serveroch Linux.

Najskôr vytvorte nový skript v jazyku Python ex01.py do adresára projektu a zadajte do neho nasledujúce riadky kódov.

z webového ovládača na selén na import
zo selénu.webdriver.firefox.možnosti importu
zo selénu.webdriver.bežné.kľúče na import kľúčov
firefoxOptions = Možnosti ()
firefoxMožnosti.add_argument ("- bez hlavy")
prehliadač = webdriver.Firefox (executable_path = "./ drivers / geckodriver ", options = firefoxOptions)
prehliadač.get ('https: // www.linuxhint.com ')
print ('Názov:% s'% prehliadač.názov)
prehliadač.skončiť ()

Po dokončení uložte súbor ex01.py Skript v jazyku Python.

Riadok 1 a riadok 3 sú rovnaké ako riadok 1 a riadok 2 z ex00.py Skript v jazyku Python.

2. riadok importuje Firefox možnosti z selén knižnica.

Riadok 5 vytvorí objekt Možnosti Firefoxu a uloží ho do priečinka firefoxMožnosti premenná.

Riadok 6 používa znak firefoxMožnosti.add_argument () metóda na pridanie -bezhlavý Firefox príkazový riadok príznak na firefoxMožnosti objekt.

Na riadku 8, možnosti argument slúži na odovzdanie firefoxMožnosti pri inicializácii webového ovládača Firefox pomocou webdriver.Firefox () metóda.

Zvyšok riadkov ex01.py skript je rovnaký ako skript ex00.py.

Môžete spustiť skript Python ex01.py nasledujúcim príkazom:

$ python3 ex01.py

Ako vidíte, názov webovej stránky (linuxhint.com) je vytlačený na konzole bez otvorenia akejkoľvek grafickej verzie webového prehliadača Firefox.

Ako vidíte, Selenium pracuje aj na bezhlavom prostredí Ubuntu, kde nemám nainštalované žiadne grafické užívateľské rozhranie.

Teraz, keď viete, ako prejsť -bezhlavý Vlajka / voľba príkazového riadku Firefoxu pomocou ovládača Selenium Firefox Gecko, môžete odovzdať aj akékoľvek iné návestie / možnosti prehľadávača Firefox.

Všetky podporované príznaky alebo možnosti príkazového riadku prehliadača Firefox nájdete v možnostiach príkazového riadku - Mozilla | Stránka MDN.

Príklad 02: Extrakcia Ipsumu Lorem pomocou selénu

V tejto časti vám ukážem, ako vykonať základné vyradenie webu pomocou ovládača Selenium Firefox Gecko.

Najskôr navštívte stránku Lorem Ipsum Generator z webového prehliadača Firefox. Ako vidíte, stránka vygenerovala 5 náhodných odsekov. Poďme extrahovať všetok vygenerovaný text (všetkých 5 odsekov) z tejto stránky.

Predtým, ako začnete extrahovať informácie z webovej stránky, musíte poznať štruktúru HTML obsahu webovej stránky.

Štruktúru HTML obsahu, ktorý chcete extrahovať, môžete ľahko nájsť pomocou Nástroj pre vývojárov Firefoxu. Na otvorenie Nástroj pre vývojárov Firefoxu, stlačte pravé tlačidlo myši (RMB) na stránke a kliknite na Skontrolujte prvok (Q).

Nástroj pre vývojárov Firefoxu by mali byť otvorené. Klikni na Skontrolujte ikonu () ako je vyznačené na snímke obrazovky nižšie.

Umiestnite kurzor myši na prvý odsek, ako je znázornené na snímke obrazovky nižšie. Potom ho vyberte ľavým tlačidlom myši (LMB).

Štruktúra HTML odsekov by mala byť zobrazená v Skontrolujte záložka Nástroj pre vývojárov Firefoxu. Ako vidíte, vygenerované odseky lorem ipsum sú vo vnútri a div značka, ktorá má id lipo.

Ak chcete extrahovať odstavce lorem ipsum pomocou ovládača Selenium Firefox Gecko, vytvorte nový skript v jazyku Python ex02.py do adresára projektu a zadajte do neho nasledujúce riadky kódov.

z webového ovládača na selén na import
zo selénu.webdriver.firefox.možnosti importu
zo selénu.webdriver.bežné.kľúče na import kľúčov
firefoxOptions = Možnosti ()
firefoxMožnosti.add_argument ("- bez hlavy")
prehliadač = webdriver.Firefox (executable_path = "./ drivers / geckodriver ", options = firefoxOptions)
prehliadač.get ('https: // www.lipo.com / feed / html ')
lipsum = prehliadač.find_element_by_id ('lipsum')
potlač (lip.text)
prehliadač.skončiť ()

Po dokončení uložte súbor ex02.py Skript v jazyku Python.

Riadok 10 načíta stránku generátora lorem ipsum pomocou prehliadač.dostať () metóda.

Obsah lorem ipsum je vo vnútri a div značka s id lipo. Riadok 12 používa prehliadač.find_element_by_id () spôsobom vyberte ho z webovej stránky a uložte ho do lipo premenná.

Riadok 13 vytlačí vygenerovaný obsah lorem ipsum na konzole. Tu je text vlastnosť sa používa na prístup k obsahu súboru div prvok s id lipo.

Teraz spustite skript v jazyku Python ex02.py nasledovne:

$ python3 ex02.py

Ako vidíte, selén správne extrahoval obsah lorem ipsum z webovej stránky.

Spustenie skriptu Python ex02.py opäť vám dá iný výstup, ako vidíte na snímke obrazovky nižšie.

Príklad 03: Extrakcia údajov zoznamu pomocou selénu

V tejto časti vám ukážem príklad údajov zo zoznamov šrotu webových stránok z webu pomocou ovládača Selenium Firefox Gecko v bezhlavom režime.

Najskôr navštívte generátor náhodných mien.informácie z webového prehliadača Firefox. Táto webová stránka vygeneruje pri každom opätovnom načítaní stránky 10 náhodných mien, ako vidíte na snímke obrazovky nižšie. Naším cieľom je extrahovať tieto náhodné mená pomocou selénu v bezhlavom režime.

Ak chcete zistiť štruktúru HTML zoznamu, musíte otvoriť Nástroj pre vývojárov Firefoxu. Vykonáte to tak, že na stránke kliknete pravým tlačidlom myši (RMB) a kliknete na Skontrolujte prvok (Q).

Nástroj pre vývojárov Firefoxu by mali byť otvorené. Klikni na Skontrolujte ikonu () ako je vyznačené na snímke obrazovky nižšie.

Potom umiestnite kurzor myši na zoznam Náhodné mená. Zoznam by mal byť zvýraznený tak, ako je to vyznačené na snímke obrazovky nižšie. Potom stlačte ľavé tlačidlo myši (LMB) a vyberte zoznam.

HTML kód zoznamu by mal byť zvýraznený v Inšpektor záložka Nástroj pre vývojárov Firefoxu. Tu sa zoznam náhodných mien nachádza vo vnútri a div element. The div prvok má trieda názov výsledky. V jeho vnútri máme ol prvok s trieda názov zoznam mien. Vnútri ol prvku, každé z mien je v a li element.

Z toho môžeme povedať, že sa dostaneme k li tagy, musíme sa riadiť div.výsledky> ol.nameList> li

Náš selektor CSS teda bude div.výsledky ol.nameList li (stačí vymeniť > značky s medzerami)

Na extrahovanie týchto náhodných mien vytvorte nový skript v jazyku Python ex03.py a zadajte do neho nasledujúce riadky kódov.

z webového ovládača na selén na import
zo selénu.webdriver.firefox.možnosti importu
zo selénu.webdriver.bežné.kľúče na import kľúčov
firefoxOptions = Možnosti ()
firefoxMožnosti.add_argument ("- bez hlavy")
prehliadač = webdriver.Firefox (executable_path = "./ drivers / geckodriver ", options = firefoxOptions)
prehliadač.get ("http: // generátor náhodných mien.Info/")
nameList = prehliadač.find_elements_by_css_selector ('div.výsledky ol.nameList li ')
pre meno v nameList:
tlač (meno.text)
prehliadač.skončiť ()

Po dokončení uložte súbor ex03.py Skript v jazyku Python.

Riadok 10 načíta webovú stránku generátora náhodných mien pomocou znaku prehliadač.dostať () metóda.

Riadok 11 vyberie zoznam mien pomocou prehliadač.find_elements_by_css_selector () metóda. Táto metóda využíva selektor CSS div.výsledky ol.nameList li vyhľadať zoznam mien. Potom sa zoznam mien uloží do priečinka zoznam mien premenná.

V riadkoch 13 a 14 sa a pre slučka sa používa na iteráciu cez zoznam mien zoznam li prvkov. V každej iterácii obsah li prvok je vytlačený na konzole.

Teraz spustite skript v jazyku Python ex03.py nasledovne:

$ python3 ex03.py

Ako vidíte, skript v jazyku Python ex03.py načítal všetky náhodné mená z webovej stránky.

Ak skript spustíte druhýkrát, mal by vrátiť nový zoznam náhodných mien, ako vidíte na obrázku nižšie.

Záver:

Tento článok by vám mal pomôcť začať používať selén pomocou webového prehliadača Firefox. Mali by ste byť schopní nastaviť projekt ovládača Selenium Firefox Gecko celkom ľahko a spustiť testy prehľadávača, automatizáciu webu a úlohy zoškrabávania webu.

Hry Ako vyvíjať hru v systéme Linux
Ako vyvíjať hru v systéme Linux
Pred desiatimi rokmi by len málo používateľov Linuxu predpovedalo, že ich obľúbený operačný systém bude jedného dňa populárnou hernou platformou pre k...
Hry Open source porty komerčných herných strojov
Open source porty komerčných herných strojov
Na hranie starých i niektorých z nedávnych herných titulov je možné využiť bezplatné hry s otvoreným zdrojom a multiplatformové herné enginy. V tomto ...
Hry Najlepšie hry z príkazového riadku pre systém Linux
Najlepšie hry z príkazového riadku pre systém Linux
Príkazový riadok nie je pri použití systému Linux iba vaším najväčším spojencom - môže byť tiež zdrojom zábavy, pretože ho môžete použiť na hranie mno...