Selén

Umiestnenie prvkov selektormi CSS so selénom

Umiestnenie prvkov selektormi CSS so selénom
Umiestnenie a výber prvkov z webovej stránky je kľúčom k scrapingu webu so selénom. Na vyhľadanie a výber prvkov z webovej stránky môžete použiť selektory CSS v seléne.V tomto článku vám ukážem, ako vyhľadať a vybrať prvky z webových stránok pomocou selektorov CSS v seléne s knižnicou selénu python. 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) Python virtualenv balík nainštalovaný vo vašom počítači.
5) Vo vašom počítači sú nainštalované webové prehľadávače Mozilla Firefox alebo Google Chrome.
6) Musíte vedieť, ako nainštalovať ovládač Firefox Gecko alebo webový ovládač Chrome.

Pre splnenie požiadaviek 4, 5 a 6 si prečítajte môj článok Úvod do selénu v Pythone 3 v Linuxhint.com.

Mnoho článkov o ďalších témach nájdete na stránkach LinuxHint.com. Ak potrebujete pomoc, nezabudnite ich skontrolovať.

Nastavenie adresára projektu:

Ak chcete mať všetko usporiadané, vytvorte nový adresár projektu selén-css-selektor / nasledovne:

$ mkdir -pv selén-css-selektor / ovládače

Prejdite na ikonu selén-css-selektor / adresár projektu nasledovne:

$ cd selén-css-selektor /

Vytvorte virtuálne prostredie Pythonu v adresári projektu takto:

$ virtualenv .venv

Aktivujte virtuálne prostredie nasledovne:

$ zdroj .venv / bin / aktivovať

Nainštalujte knižnicu selénu Python pomocou PIP3 nasledovne:

$ pip3 nainštalujte selén

Stiahnite a nainštalujte všetky požadované webové ovládače v vodiči / adresár projektu. V mojom článku som vysvetlil proces sťahovania a inštalácie webových ovládačov Úvod do selénu v Pythone 3. Ak potrebujete pomoc, hľadajte ďalej LinuxHint.com pre ten clanok.

Získajte výber CSS pomocou nástroja pre vývojárov prehliadača Chrome:

V tejto časti vám ukážem, ako pomocou selénu nájsť selektor CSS elementu webovej stránky, ktorý chcete vybrať, pomocou zabudovaného vývojárskeho nástroja webového prehliadača Google Chrome.

Ak chcete získať selektor CSS pomocou webového prehliadača Google Chrome, otvorte prehliadač Google Chrome a navštívte web, z ktorého chcete extrahovať údaje. Potom stlačte pravé tlačidlo myši (RMB) na prázdnej časti stránky a kliknite na Skontrolujte otvoriť Chrome Developer Tool.

Môžete tiež stlačiť + Posun + Ja otvoriť Chrome Developer Tool.

Chrome Developer Tool by mali byť otvorené.

Ak chcete nájsť zastúpenie HTML požadovaného prvku webovej stránky, kliknite na ikonu Skontrolujteikona () vyznačená na snímke obrazovky nižšie.

Potom umiestnite kurzor myši nad požadovaný prvok webovej stránky a vyberte ho ľavým tlačidlom myši (LMB).

HTML reprezentácia webového prvku, ktorý ste vybrali, bude zvýraznená v Prvky záložka Chrome Developer Tool ako vidíte na snímke obrazovky nižšie.

Ak chcete získať selektor CSS požadovaného prvku, vyberte ho v zozname Prvky záložka Chrome Developer Tool a kliknite na ňu pravým tlačidlom myši (RMB). Potom vyberte Kópia > Selektor kopírovania ako je vyznačené na snímke obrazovky nižšie.

Vložil som selektor CSS do textového editora. Selektor CSS vyzerá tak, ako je to znázornené na snímke obrazovky nižšie.

Získajte CSS Selector pomocou vývojového nástroja pre Firefox:

V tejto časti vám ukážem, ako pomocou selénu nájsť selektor CSS elementu webovej stránky, ktorý chcete vybrať, pomocou zabudovaného vývojárskeho nástroja webového prehliadača Mozilla Firefox.

Ak chcete získať selektor CSS pomocou webového prehliadača Firefox, otvorte Firefox a navštívte webovú stránku, z ktorej chcete extrahovať údaje. Potom stlačte pravé tlačidlo myši (RMB) na prázdnej časti stránky a kliknite na Skontrolujte prvok (Q) otvoriť Nástroj pre vývojárov Firefoxu.

Nástroj pre vývojárov Firefoxu by mali byť otvorené.

Ak chcete nájsť zastúpenie HTML požadovaného prvku webovej stránky, kliknite na ikonu Skontrolujteikona () vyznačená na snímke obrazovky nižšie.

Potom umiestnite kurzor myši nad požadovaný prvok webovej stránky a vyberte ho ľavým tlačidlom myši (LMB).

HTML reprezentácia webového prvku, ktorý ste vybrali, bude zvýraznená v Inšpektor záložka Nástroj pre vývojárov Firefoxu ako vidíte na snímke obrazovky nižšie.

Ak chcete získať selektor CSS požadovaného prvku, vyberte ho v zozname Inšpektor záložka Nástroj pre vývojárov Firefoxu a kliknite na ňu pravým tlačidlom myši (RMB). Potom vyberte Kópia > Selektor CSS ako je vyznačené na snímke obrazovky nižšie.

Selektor CSS požadovaného prvku by mal vyzerať asi takto.

Extrahovanie údajov pomocou selektora CSS so selénom:

V tejto časti vám ukážem, ako vyberať prvky webových stránok a extrahovať z nich údaje pomocou selektorov CSS s knižnicou Selenium Python.

Najskôr vytvorte nový skript v jazyku Python ex00.py a zadajte nasledujúce riadky kódov.

z webového ovládača na selén na import
zo selénu.webdriver.bežné.kľúče na import kľúčov
zo selénu.webdriver.bežné.importom do
options = webdriver.ChromeOptions ()
možnosti.bezhlavý = Pravda
prehliadač = webdriver.Chrome (executable_path = "./ drivers / chromedriver ", možnosti = možnosti)
prehliadač.get ("https: // www.unixtimestamp.com / ")
timestamp = prehliadač.find_element_by_css_selector ('h3.text-danger: nth-child (3) ')
print ('Aktuálna časová známka:% s'% (časová známka.text.split (") [0]))
prehliadač.Zavrieť()

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

Riadok 1-3 importuje všetky požadované komponenty selénu.

Riadok 5 vytvára objekt Možnosti prehliadača Chrome a riadok 6 umožňuje bezhlavý režim webového prehliadača Chrome.

Riadok 8 vytvára Chrome prehliadač objekt pomocou chromedriver binárne z vodiči / adresár projektu.

Riadok 10 informuje prehliadač, aby načítal webovú stránku unixtimestamp.com.

Riadok 12 vyhľadá prvok, ktorý má zo stránky údaje časových značiek, pomocou selektora CSS a uloží ich do súboru časová značka premenná.

Riadok 13 analyzuje údaje časovej pečiatky z prvku a vytlačí ich na konzolu.

Takto vyzerá štruktúra HTML dát časovej pečiatky UNIX v unixtimestamp.com vyzerá ako.

Riadok 14 zavrie prehliadač.

Spustite skript v jazyku Python ex00.py nasledovne:

$ python3 ex00.py

Ako vidíte, údaje o časovej pečiatke sa tlačia na obrazovku.

Tu som použil prehliadač.find_element (podľa, selektor) metóda.

Pretože používame selektory CSS, bude prvý parameter Autor:.CSS_SELECTOR a druhým parametrom bude samotný selektor CSS.

Namiesto prehliadač.find_element () metódu, môžete tiež použiť prehliadač.find_element_by_css_selector (selektor) metóda. Táto metóda vyžaduje iba selektor CSS. Výsledok bude rovnaký.

The prehliadač.find_element () a prehliadač.find_element_by_css_selector () Na vyhľadanie a výber jedného prvku z webovej stránky sa používajú metódy. Ak chcete nájsť a vybrať viac prvkov pomocou selektorov CSS, musíte použiť prehliadač.find_elements () a prehliadač.find_elements_by_css_selector () metódy.

The prehliadač.find_elements () metóda má rovnaké argumenty ako prehliadač.find_element () metóda.

The prehliadač.find_elements_by_css_selector () metóda má rovnaký argument ako prehliadač.find_element_by_css_selector () metóda.

Pozrime sa na príklad extrakcie zoznamu mien pomocou selektorov CSS z generátora náhodných mien.info so selénom.

Ako vidíte, neusporiadaný zoznam má názov triedy zoznam mien. Môžeme teda použiť selektor CSS .nameList li vyberte všetky mená z webovej stránky.

Prejdime si príklad výberu viacerých prvkov z webovej stránky pomocou selektorov CSS.

Vytvorte nový skript v jazyku Python ex01.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.bežné.kľúče na import kľúčov
zo selénu.webdriver.bežné.importom do
options = webdriver.ChromeOptions ()
možnosti.bezhlavý = Pravda
prehliadač = webdriver.Chrome (executable_path = "./ drivers / chromedriver ", možnosti = možnosti)
prehliadač.get ("http: // generátor náhodných mien.Info/")
mená = prehliadač.find_elements (podľa.CSS_SELECTOR, “.nameList li ')
pre meno v menách:
tlač (meno.text)
prehliadač.Zavrieť()

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

Riadok 1-8 je rovnaký ako v ex00.py Skript v jazyku Python. Takže ich tu už nebudem vysvetľovať.

Riadok 10 informuje prehliadač, aby načítal generátor náhodných mien webových stránok.Info.

Riadok 12 vyberie zoznam mien pomocou prehliadač.find_elements () metóda. Táto metóda využíva selektor CSS .nameList li vyhľadať zoznam mien. Potom sa zoznam mien uloží do priečinka mien premenná.

V riadkoch 13 a 14 sa a pre slučka sa používa na iteráciu cez mien zoznam a vytlačte mená na konzolu.

Riadok 16 zavrie prehliadač.

Spustite skript v jazyku Python ex01.py nasledovne:

$ python3 ex01.py

Ako vidíte, mená sú extrahované z webovej stránky a vytlačené na konzole.

Namiesto použitia prehliadač.find_elements () metódou, môžete použiť aj prehliadač.find_elements_by_css_selector () metóda ako predtým. Táto metóda vyžaduje iba selektor CSS. Výsledok bude rovnaký.

Základy selektorov CSS:

Selektor CSS prvku webovej stránky môžete kedykoľvek nájsť pomocou nástroja pre vývojárov vo Firefoxe alebo vo webovom prehliadači Chrome. Tento automaticky generovaný selektor CSS nemusí byť to, čo chcete. Možno budete musieť niekedy napísať svoj selektor CSS.

V tejto časti budem hovoriť o základoch selektorov CSS, aby ste pochopili, čo určitý selektor CSS vyberá z webovej stránky, a v prípade potreby napíšte svoj vlastný selektor CSS.

Ak chcete vybrať prvok z webovej stránky pomocou ID správa, selektor CSS bude # správa.

Selektor CSS .zelená vyberie prvok pomocou názvu triedy zelená.

Ak chcete vybrať prvok (trieda správa) vo vnútri iného prvku (trieda kontajner), bude výber CSS .kontajner .správa

Selektor CSS .správa.úspech vyberie prvok, ktorý má dve triedy CSS správa a úspech.

Ak chcete vybrať všetky p značiek, môžete použiť selektor CSS p.

Vyberte iba ikonu p značky vo vnútri div značiek, môžete použiť selektor CSS div p

Ak chcete vybrať p značky, ktoré sú priamymi súrodencami značky div značiek, môžete použiť selektor CSS div> str

Ak chcete vybrať všetky rozpätie a p značiek, môžete použiť selektor CSS p, rozpätie

Ak chcete vybrať p značka ihneď po div tag, môžete použiť selektor CSS div + str

Ak chcete vybrať p značka po div tag, môžete použiť selektor CSS div ~ str

Ak chcete vybrať všetky p značky, ktoré majú názov triedy správa, môžete použiť selektor CSS p.správa

Ak chcete vybrať všetky rozpätie značky, ktoré majú názov triedy správa, môžete použiť selektor CSS rozpätie.správa

Ak chcete vybrať všetky prvky, ktoré majú tento atribút href, môžete použiť selektor CSS [href]

Ak chcete vybrať prvok, ktorý má atribút názov a hodnota názov atribút je používateľské meno, môžete použiť selektor CSS [name = ”používateľské meno”]

Ak chcete vybrať všetky prvky, ktoré majú tento atribút alt a hodnota alt atribút obsahujúci podreťazec vscode, môžete použiť selektor CSS [alt ~ = ”vscode”]

Ak chcete vybrať všetky prvky, ktoré majú href atribút a hodnota href atribút začína reťazcom https, môžete použiť selektor CSS [href ^ = ”https”]

Ak chcete vybrať všetky prvky, ktoré majú href atribút a hodnota href atribút končiaci reťazcom .com, môžete použiť selektor CSS [href $ = ”.com “]

Ak chcete vybrať všetky prvky, ktoré majú href atribút a hodnota href atribút má podreťazec google, môžete použiť selektor CSS [href * = ”google”]

Ak chcete vybrať prvý li značka vo vnútri ul tag, môžete použiť selektor CSS ul li: prvé dieťa

Ak chcete vybrať prvý li značka vo vnútri ul tag, môžete tiež použiť selektor CSS ul li: n -te dieťa (1)

Ak chcete vybrať posledný li značka vo vnútri ul tag, môžete použiť selektor CSS ul li: posledné dieťa

Ak chcete vybrať posledný li značka vo vnútri ul tag, môžete použiť aj selektor CSS ul li: n-posledné dieťa (1)

Ak chcete vybrať druhú li značka vo vnútri ul od začiatku môžete použiť selektor CSS ul li: n-dieťa (2)

Ak chcete zvoliť tretí li značka vo vnútri ul od začiatku môžete použiť selektor CSS ul li: n-dieťa (3)

Ak chcete vybrať druhú li značka vo vnútri ul od konca, môžete použiť selektor CSS ul li: n-posledné dieťa (2)

Ak chcete zvoliť tretí li značka vo vnútri ul od konca, môžete použiť selektor CSS ul li: n-posledné dieťa (3)

Toto sú najbežnejšie selektory CSS. Nájdete ich takmer pri všetkých selénových projektoch. Selektorov CSS je oveľa viac. Zoznam všetkých nájdete v serveri w3schools.com Referencia výberu CSS.

Záver:

V tomto článku som ukázal, ako vyhľadať a vybrať prvky webových stránok pomocou selektorov CSS so selénom. Diskutoval som tiež o základoch selektorov CSS. Mali by ste byť schopní pohodlne používať selektory CSS pre svoje selénové projekty.

Hry Výukový program Shadow of the Tomb Raider pre Linux
Výukový program Shadow of the Tomb Raider pre Linux
Shadow of the Tomb Raider je dvanásty prírastok do série Tomb Raider - franšíza akčných adventúr vytvorená Eidosom Montrealom. Túto hru prijali kritic...
Hry Ako zvýšiť rýchlosť FPS v systéme Linux?
Ako zvýšiť rýchlosť FPS v systéme Linux?
FPS znamená Počet snímok za sekundu. Úlohou FPS je merať snímkovú frekvenciu pri prehrávaní videa alebo herných výkonoch. Jednoducho povedané, počet n...
Hry Najlepšie hry Oculus App Lab
Najlepšie hry Oculus App Lab
Ak ste vlastníkom náhlavnej súpravy Oculus, musíte byť informovaní o bočnom nakladaní. Sideloading je proces inštalácie neuloženého obsahu do náhlavne...