Selenium VBA Exceli õpetus (Chrome Web Scratch)ping)
⚡ Nutikas kokkuvõte
Selenium VBA Excelis automatiseerib Google Chrome HTML-veebilehtedelt andmete kraapimiseks, kasutades Selenium tüübiteek ja WebDriveri meetodid saidi avamiseks, tabeli elementide leidmiseks klassi ja sildi järgi ning tulemuste kirjutamiseks töölehe lahtritesse.

Mis on andmete kraapimine?ping Kasutamine Selenium?
Selenium on automatiseerimistööriist, mis hõlbustab kraapimistping HTML-veebilehtedelt pärit teabe, veebiskannimise teostamiseping koos Google ChromeExcelis Selenium tüübiteek võimaldab VBA-l käivitada päris brauserit aegunud Internet Exploreri mootori asemel.
Kuidas Exceli makrot enne andmete kraapimist ette valmistadaping Kasutamine Selenium
Enne andmete kraapimise alustamist tuleb Exceli makrofailiga täita teatud eeltingimused.ping protsessi.
Need eeltingimused on järgmised:
Step 1) Avage Exceli-põhine makro ja avage Exceli arendaja suvand.
Step 2) Valige arendaja lindi alt suvand Visual Basic.
Step 3) Sisestage uus moodul.
Step 4) Initsialiseeri uus alamprogramm ja nimeta see test2-ks.
Sub test2() End Sub
Mooduli tulemus oleks järgmine:
Step 5) Avage vahekaardil Tööriistad suvand „Viide“ ja viidake Selenium Tüüpiteek. See teek aitab avada Google Chrome ja hõlbustab makro skriptimist.
Nüüd on Exceli fail brauseriga suhtlemiseks valmis. Järgmine samm on makroskripti lisamine, mis hõlbustab andmete skannimist.ping HTML-is.
Kuidas avada Google Chrome VBA kasutamine
Siin on sammud avamiseks Google Chrome VBA abil.
Step 1) Deklareeri ja initsialiseeri alamprogrammi muutujad allpool näidatud viisil.
Sub test2() Dim driver As New WebDriver Dim rowc, cc, columnC As Integer
Step 2) Avama Google Chrome kasutamine Selenium ja VBA-sse, kirjutage draiver. Käivitage Chrome ja vajutage 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 kasutamine
Kui teil on juurdepääs Google Chrome VBA kasutamisel on järgmine samm veebisaidile juurdepääs VBA abil. Seda hõlbustab funktsioon Get, kus URL edastatakse jutumärkidena.
Moodul näeks välja järgmine:
Makro käivitamiseks vajutage F5. Avaneb järgmine veebileht. Google Chrome nagu näidatud.
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 skrambleerimiseks valmis.ping ülesandeid. Järgmine samm näitab, kuidas teavet saab kasutadatracted, rakendades Selenium ja VBA.
Kuidas VBA abil veebisaidilt teavet kraapida
Oletame, et päevakaupleja soovib veebisaidil olevatele andmetele iga päev ligi pääseda. Iga kord, kui päevakaupleja nupule klõpsab, peaks turuandmed automaatselt Excelisse laadima.
Ülaltoodud veebisaidilt on vaja uurida elementi ja jälgida, kuidas andmed on struktureeritud. HTML-i lähtekoodile pääsete ligi vajutades Ctrl + Shift + Mina.
<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>
Nagu näete, on andmed struktureeritud ühe HTML-tabelina. Seega, et kogu teave HTML-tabelist kätte saada, peate looma makro, mis hangib päiseteabe ja tabeliga seotud vastavad andmed. Tehke alltoodud ülesandeid.
Step 1) Formuleerige For-tsükkel, mis läbib HTML-i päiseinfo kogumina. Selenium Draiver leiab päiseinfo FindElementByClass() ja FindElementByTag() meetodite abil, nagu näidatud.
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ärgmine Selenium Draiver leiab tabeli andmed sarnase lähenemisviisi abil. Kirjutage järgmine kood:
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
Exceli saab initsialiseerida lehe atribuudi „Range” või „Cells” abil. VBA-skripti keerukuse vähendamiseks initsialiseeritakse kogutud andmed töövihiku 2. lehe atribuudi „Cells” abil. Atribuut „Text” aitab teksti 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, määrake alamprogramm Exceli nupule ja väljuge VBA moodulist. Märgistage nupp nimega Värskenda või mis tahes muu sobiv nimi. Selle näite puhul on nupu nimeks Värskenda.
Step 4) Alloleva väljundi saamiseks vajutage nuppu Värskenda.
Step 5) Võrdle Exceli tulemusi tulemustega Google Chrome.












