Selen lahko razvrstimo kot orodje za avtomatizacijo, ki omogoča strganje informacij s spletnih strani HTML za izvedbo spletnega strganja s pomočjo google chrome.
V tej vadnici boste izvedeli:
Kaj je strganje podatkov s selenom?
Kako pripraviti makro Excel pred izvajanjem strganja podatkov s pomočjo selena?
Kako odpreti Google Chrome z uporabo VBA?
Kako odpreti spletno mesto v Google chrome z uporabo VBA?
Kako strgati podatke s spletnega mesta z uporabo VBA?
Kako pripraviti makro Excel pred izvajanjem strganja podatkov s pomočjo selena?
Obstajajo določeni predpogoji, ki jih je treba izvesti v datoteki makra excel, preden začnemo s postopkom strganja podatkov v Excelu.
Ti predpogoji so naslednji:
Korak 1) Odprite makro, ki temelji na Excelu, in odprite razvijalčevo možnost excela.
Korak 2) Pod trakom za razvijalce izberite možnost Visual Basic.
Korak 3) Vstavite nov modul.
Korak 4) Inicializirajte novo podprogram in ga poimenujte kot test2.
Sub test2 ()Končaj pod
Rezultati bi bili v modulu:
Korak 5) Dostopite do referenčne možnosti pod zavihkom orodja in referenčne knjižnice vrst Selenium. Na naslednje knjižnice se je treba sklicevati na modul, saj pomaga pri odpiranju google chrome in olajša razvoj makro skript.
Zdaj je datoteka Excel pripravljena za interakcijo z Internet Explorerjem. Naslednji koraki bi bili vključitev makro skripta, ki bi olajšal strganje podatkov v HTML.
Kako odpreti Google Chrome z uporabo VBA?
Tukaj so koraki za odpiranje Google Chroma z uporabo VBA
Korak 1) Navedite in inicializirajte spremenljivke v podprogramu, kot je prikazano spodaj
Sub test2 ()Zatemnjen gonilnik kot nov spletni gonilnikZatemni rowc, cc, columnC kot celo število
2. korak) Če želite google chrome odpreti s selenom in VBA, napišite driver.start "chrome" in pritisnite F5 .
Naslednja bi bila koda.
Sub test2 ()Zatemnjen gonilnik kot nov spletni gonilnikZatemni rowc, cc, columnC kot celo številoDriver.start "Chrome"Application.Wait Now + Timevalue ("00:00:20")Končaj pod
Rezultat modula bo:
Kako odpreti spletno mesto v Google chrome z uporabo VBA?
Ko boste lahko dostopali do google chrome s pomočjo VBA, je naslednji korak vključitev dostopa do spletnega mesta z uporabo VBA. To olajša funkcija get, pri kateri mora URL v atributu prehajati kot dvojni narekovaji.
Kot je prikazano, sledite naslednjim korakom
Modul bi bil videti tako: -
Pritisnite F5, da zaženete makro.
Naslednja spletna stran bi bila odprta v google chrome, kot je prikazano
Sub test2 ()Zatemnjen gonilnik kot nov spletni gonilnikZatemni rowc, cc, columnC kot celo številoDriver.start "Chrome"Driver.get "http://demo.guru99.com/test/web-table-element.php"Application.Wait Now + Timevalue ("00:00:20")Končaj pod
Zdaj je makro excel pripravljen za izvajanje opravil strganja. Naslednji korak bi prikazal, kako je mogoče informacije pridobiti z uporabo selena in VBA.
Kako strgati podatke s spletnega mesta z uporabo VBA?
Recimo, da želi trgovec dneva vsak dan dostopati do podatkov s spletnega mesta. Vsakič, ko trgovec na dan pritisne gumb, mora samodejno povleči tržne podatke v excel.
Na zgornjem spletnem mestu bi bilo treba pregledati element in opazovati, kako so podatki strukturirani. Do spodnje izvorne kode HTML dostopajte s pritiskom na tipki + Shift + I
Podjetje
Skupina
Pre Close (Rs)
Trenutna cena (Rs)
% spremembe
Izvorna koda bi bila naslednja:
Kot je razvidno, so podatki strukturirani kot ena tabela HTML. Zato bi bilo za izvlečenje celotnih podatkov iz tabele HTML potrebno oblikovanje makra, ki potegne informacije o glavi tabele HTML in ustrezne podatke, povezane s tabelo. Izvedite naslednja opravila, kot je prikazano: -
Korak 1) Oblikujte zanko for, ki poteka kot informacija v glavi HTML kot zbirka. Gonilnik selena mora najti informacije o glavi v tabeli HTML. Za to uporabimo metodo FindElementByClass () in FindElementByTag () za izvajanje naloge, kot je prikazano
Modul VBA bi bil videti tako:
Sub test2 ()Zatemnjen gonilnik kot nov WebDriverZatemni rowc, cc, stolpecC Kot celo številorowc = 2Application.ScreenUpdating = Falsevoznik.Začnite "krom"driver.Get "http://demo.guru99.com/test/web-table-element.php"Za vsak th v gonilniku.FindElementByClass ("dataTable"). FindElementByTag ("thead"). FindElementsByTag ("tr")cc = 1Za vsako t v th.FindElementsByTag ("th")List2.Celice (1, cc) .Vrednost = t.Textcc = cc + 1Naslednji tNaslednji th
Korak 2) Nato bi gonilnik selena poiskal podatke tabele s podobnim pristopom, kot je omenjeno zgoraj. Napisati morate naslednjo kodo: -
Sub test2 ()Zatemnjen gonilnik kot nov WebDriverZatemni rowc, cc, stolpecC Kot celo številorowc = 2Application.ScreenUpdating = Falsevoznik.Začnite "krom"driver.Get "http://demo.guru99.com/test/web-table-element.php"Za vsak th v gonilniku.FindElementByClass ("dataTable"). FindElementByTag ("thead"). FindElementsByTag ("tr")cc = 1Za vsako t v th.FindElementsByTag ("th")List2.Celice (1, cc) .Vrednost = t.Textcc = cc + 1Naslednji tNaslednji thZa vsak tr In voznik.FindElementByClass ("dataTable"). FindElementByTag ("tbody"). FindElementsByTag ("tr")stolpecC = 1Za vsak td v tr.FindElementsByTag ("td")List2.Cells (rowc, columnC) .Value = td.TextstolpecC = stolpecC + 1Naslednji tdrowc = rowc + 1Naslednji trApplication.Wait Now + TimeValue ("00:00:20")Končaj pod
Modul vba bi izgledal takole:
Excel je mogoče inicializirati s pomočjo atributa Range na Excelovem listu ali prek atributa celic na Excelovem listu. Da bi zmanjšali zapletenost skripta VBA, se podatki o zbirki inicializirajo v atribut celic excel lista 2, ki je prisoten v delovnem zvezku. Poleg tega atribut besedila pomaga pri pridobivanju besedilnih informacij pod oznako HTML.
Sub test2 ()Zatemnjen gonilnik kot nov WebDriverZatemni rowc, cc, stolpecC Kot celo številorowc = 2Application.ScreenUpdating = Falsevoznik.Začnite "krom"driver.Get "http://demo.guru99.com/test/web-table-element.php"Za vsak th v gonilniku.FindElementByClass ("dataTable"). FindElementByTag ("thead"). FindElementsByTag ("tr")cc = 1Za vsako t v th.FindElementsByTag ("th")List2.Celice (1, cc) .Vrednost = t.Textcc = cc + 1Naslednji tNaslednji thZa vsak tr In voznik.FindElementByClass ("dataTable"). FindElementByTag ("tbody"). FindElementsByTag ("tr")stolpecC = 1Za vsak td v tr.FindElementsByTag ("td")List2.Cells (rowc, columnC) .Value = td.TextstolpecC = stolpecC + 1Naslednji tdrowc = rowc + 1Naslednji trApplication.Wait Now + TimeValue ("00:00:20")Končaj pod
Modul vba bi izgledal takole:
Korak 3) Ko je makro skript pripravljen, podajte in dodelite podprogram gumbu excel in zapustite modul VBA. Označite gumb kot osvežitev ali katero koli primerno ime, ki bi ga bilo mogoče inicializirati. V tem primeru je gumb inicializiran kot osvežitev.
Korak 4) Pritisnite gumb za osvežitev, da dobite spodnji izhod
5. korak) Primerjajte rezultate v Excelu z rezultati google chrome
Povzetek:
Selen lahko razvrstimo kot orodje za avtomatizacijo, ki omogoča strganje informacij s spletnih strani HTML za izvedbo spletnega strganja s pomočjo google chrome.
Strganje po internetu je treba izvajati previdno.
Običajno je odstranjevanje informacij v nasprotju s pogoji spletnega mesta.
Ko strganje poteka skozi selen, ponuja podporo za več brskalnikov.
Z drugimi besedami, strgalo lahko izvaja podobne naloge strganja tudi prek Firefoxa, internetnega raziskovalca.