Selenium VBA Exceli õpetus: Chrome Web Scratchping Näide
Mis on andmete kraapimine?ping seleeni kasutamine?
Selenium võib liigitada automatiseerimisvahendiks, mis hõlbustab kraapimistping HTML-veebilehtedelt teabe kogumine veebiskannimiseksping Google Chrome'i kasutamine.
Kuidas Exceli makrot enne andmete skrabimist ette valmistada?ping kasutamine Selenium?
Enne andmete kraapimise protsessi alustamist tuleb Exceli makrofailiga täita teatud eeltingimused.ping Excelis.
Need eeltingimused on järgmised: -
Step 1) Avage Exceli-põhine makro ja pääsete juurde Exceli arendajavalikule.
Step 2) Valige Arendaja lindi all suvand Visual Basic.
Step 3) Sisestage uus moodul.
Step 4) Initsialiseerige uus alamprogramm ja nimetage see test2-ks.
Sub test2() End sub
Mooduli tulemused oleksid järgmised: -
Step 5) Juurdepääs viitevalikule tööriista vahekaardi ja viite all Selenium tüüpi raamatukogu. Moodulile tuleb viidata järgmistele teekidele, kuna see aitab avada google chrome'i ja hõlbustab makroskriptimise arendamist.
Nüüd on Exceli fail Internet Exploreriga suhtlemiseks valmis. Järgmised sammud oleksid makroskripti lisamine, mis hõlbustaks andmete skannimist.ping HTML-is.
Kuidas avada Google Chrome kasutad VBA-d?
Siin on samm avamiseks Google Chrome kasutades VBA-d
Step 1) Deklareerige ja lähtestage alamprogrammi muutujad, nagu allpool näidatud
Sub test2() Dim driver as new webdriver Dim rowc, cc, columnC as integer
Step 2) Google chrome'i avamiseks seleeni ja VBA abil kirjuta driver.start “chrome” ja vajuta F5.
Kood oleks järgmine.
Sub test2()
Dim driver as new webdriver
Dim rowc, cc, columnC as integer
Driver.start "Chrome"
Application.Wait Now+Timevalue("00:00:20")
End sub
Mooduli tulemus oleks järgmine: -
Kuidas veebisaiti avada Google Chrome VBA abil?
Kui teil on võimalik Google Chrome'ile VBA abil ligi pääseda, on järgmine samm veebisaidile juurdepääsu lisamine VBA abil. Seda hõlbustab funktsioon get, kus URL peab atribuudis edastama jutumärkidena.
Järgige järgmisi samme, nagu kuvatakse
Moodul näeks välja järgmine: -
Makro käivitamiseks vajutage klahvi F5.
Järgmine veebileht avatakse kuvatud kujul Google Chrome'is
Sub test2()
Dim driver as new webdriver
Dim rowc, cc, columnC as integer
Driver.start "Chrome"
Driver.get "https://demo.guru99.com/test/web-table-element.php"
Application.Wait Now+Timevalue("00:00:20")
End sub
Nüüd on Exceli makro kraapimise teostamiseks valmis.ping ülesandeid. Järgmine samm näitaks, kuidas teavet saab kasutadatracseleeni ja VBA lisamisega.
Kuidas VBA abil veebisaidilt teavet kraapida?
Oletame, et päevakaupleja soovib igapäevaselt veebisaidilt andmetele juurde pääseda. Iga kord, kui päevakaupleja vajutab nuppu, peaks ta turuandmed automaatselt Excelisse tõmbama.
Ülaltoodud veebisaidilt oleks vaja mõnda elementi kontrollida ja jälgida, kuidas andmed on struktureeritud. Juurdepääs allolevale HTML-i lähtekoodile, vajutades juhtklahvi + Shift + I
<table class="datatable"> <thead> <tr> <th>Company</th> <th>Group</th> <th>Pre Close (Rs)</th> <th>Current Price (Rs)</th> <th>% Change</th> </tr>
Lähtekood oleks järgmine: -
Nagu näha, on andmed struktureeritud ühtse HTML-tabelina. Seetõttu on HTML-tabelist kogu andmete tõmbamiseks vaja kujundada makro, mis tõmbab HTML-tabeli päise teabe ja vastavad tabeliga seotud andmed. Tehke järgmised toimingud, nagu kuvatakse: –
Step 1) Sõnastage for-silmus, mis jookseb koguna läbi HTML-i päise teabe. Seleenidraiver peab leidma HTML-tabeli päise teabe. Selleks kasutame ülesande täitmiseks kuvatud viisil meetodeid FindElementByClass() ja FindElementByTag()
VBA moodul näeks välja järgmine: -
Sub test2()
Dim driver As New WebDriver
Dim rowc, cc, columnC As Integer
rowc = 2
Application.ScreenUpdating = False
driver.Start "chrome"
driver.Get "https://demo.guru99.com/test/web-table-element.php"
For Each th In driver.FindElementByClass("dataTable").FindElementByTag("thead").FindElementsByTag("tr")
cc = 1
For Each t In th.FindElementsByTag("th")
Sheet2.Cells(1, cc).Value = t.Text
cc = cc + 1
Next t
Next th
Step 2) Järgmisena tuvastab seleenidraiver tabeli andmed sarnase lähenemisviisi abil, nagu eespool mainitud. Peate kirjutama järgmise koodi: -
Sub test2()
Dim driver As New WebDriver
Dim rowc, cc, columnC As Integer
rowc = 2
Application.ScreenUpdating = False
driver.Start "chrome"
driver.Get"https://demo.guru99.com/test/web-table-element.php"
For Each th In driver.FindElementByClass("dataTable").FindElementByTag("thead").FindElementsByTag("tr")
cc = 1
For Each t In th.FindElementsByTag("th")
Sheet2.Cells(1, cc).Value = t.Text
cc = cc + 1
Next t
Next th
For Each tr In driver.FindElementByClass("dataTable").FindElementByTag("tbody").FindElementsByTag("tr")
columnC = 1
For Each td In tr.FindElementsByTag("td")
Sheet2.Cells(rowc, columnC).Value = td.Text
columnC = columnC + 1
Next td
rowc = rowc + 1
Next tr
Application.Wait Now + TimeValue("00:00:20")
End Sub
Vba moodul näeks välja järgmine: -
Exceli saab lähtestada Exceli lehe atribuudi Range või Exceli lehe atribuudi lahtrite abil. VBA-skripti keerukuse vähendamiseks lähtestatakse kogumisandmed töövihikus oleva lehe 2 Exceli lahtrite atribuudiga. Lisaks aitab tekstiatribuut tekstiteavet HTML-sildi alla paigutada.
Sub test2()
Dim driver As New WebDriver
Dim rowc, cc, columnC As Integer
rowc = 2
Application.ScreenUpdating = False
driver.Start "chrome"
driver.Get"https://demo.guru99.com/test/web-table-element.php"
For Each th In driver.FindElementByClass("dataTable").FindElementByTag("thead").FindElementsByTag("tr")
cc = 1
For Each t In th.FindElementsByTag("th")
Sheet2.Cells(1, cc).Value = t.Text
cc = cc + 1
Next t
Next th
For Each tr In driver.FindElementByClass("dataTable").FindElementByTag("tbody").FindElementsByTag("tr")
columnC = 1
For Each td In tr.FindElementsByTag("td")
Sheet2.Cells(rowc, columnC).Value = td.Text
columnC = columnC + 1
Next td
rowc = rowc + 1
Next tr
Application.Wait Now + TimeValue("00:00:20")
End Sub
Vba moodul näeks välja järgmine: -
Step 3) Kui makroskript on valmis, edastage ja määrake alamprogramm Exceli nupule ja väljuge VBA moodulist. Märgistage nupp värskenduseks või mis tahes sobivaks nimeks, mida saaks selle initsialiseerida. Selle näite puhul lähtestatakse nupp värskendusena.
Step 4) Allpool mainitud väljundi saamiseks vajutage värskendamisnuppu
Step 5) Võrrelge Exceli tulemusi google chrome'i tulemustega
kokkuvõte
- Selenium võib liigitada automatiseerimisvahendiks, mis hõlbustab kraapimistping HTML-veebilehtedelt teabe kogumine veebiskannimiseksping Google Chrome'i kasutamine.
- Kraapimineping internetis tuleks tegutseda ettevaatlikult.
- Tavaliselt on teabe väljakraapimine veebisaidi tingimustega vastuolus.
- Kui kraapimineping tehakse seleeni kaudu, seejärel pakub see mitme brauseri tuge.
- Teisisõnu, kaabits saab täita sarnaseid ülesandeid nagu kraapimineping läbi Firefox, Internet Explorer samuti.












