Selenium VBA Excel tutorial (Chrome Web Scraping)
โก Pametni saลพetak
Selenium VBA u Excelu automatizira Google Chrome za skidanje podataka s HTML web stranica pomoฤu Selenium biblioteku tipova i metode WebDrivera za otvaranje web-mjesta, lociranje elemenata tablice prema klasi i oznaci te zapisivanje rezultata u ฤelije radnog lista.

ล to je scraping podatakaping Koriลกtenje Selenium?
Selenium je alat za automatizaciju koji olakลกava scrapingping informacije s HTML web stranica, izvoฤenje web scrapingaping sa Google ChromeU Excelu, Selenium Biblioteka tipova omoguฤuje VBA-i da pokreฤe pravi preglednik umjesto zastarjelog mehanizma Internet Explorera.
Kako pripremiti Excel makro prije brisanja podatakaping Koriลกtenje Selenium
Postoje odreฤeni preduvjeti koji se moraju ispuniti na Excel makro datoteci prije poฤetka brisanja podataka.ping proces.
Ti preduvjeti su sljedeฤi:
Korak 1) Otvorite makronaredbu temeljenu na Excelu i pristupite opciji Razvojni programer u Excelu.
Korak 2) Odaberite opciju Visual Basic pod vrpcom za razvojne programere.
Korak 3) Umetnite novi modul.
Korak 4) Inicijalizirajte novu potprogramu i nazovite je test2.
Sub test2() End Sub
Rezultat u modulu bi bio sljedeฤi:
Korak 5) Pristupite opciji Referenca pod karticom Alati i referencirajte se na Selenium Biblioteka tipova. Ova biblioteka pomaลพe u otvaranju Google Chrome i olakลกava makro skriptiranje.
Sada je Excel datoteka spremna za interakciju s preglednikom. Sljedeฤi korak je ukljuฤivanje makro skripte koja olakลกava brisanje podataka.ping u HTML-u.
Kako otvoriti Google Chrome Koriลกtenje VBA
Evo koraka za otvaranje Google Chrome pomoฤu VBA-e.
Korak 1) Deklarirajte i inicijalizirajte varijable u potprogramu kao ลกto je prikazano dolje.
Sub test2() Dim driver As New WebDriver Dim rowc, cc, columnC As Integer
Korak 2) Otvoriti Google Chrome koristeฤi Selenium i VBA, napiลกite upravljaฤki program. Pokrenite "Chrome" i pritisnite F5.
Sljedeฤi bi bio kod.
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
Modul bi rezultirao sljedeฤim:
Kako otvoriti web stranicu u Google Chrome Koriลกtenje VBA
Nakon ลกto moลพete pristupiti Google Chrome Koriลกtenjem VBA-e, sljedeฤi korak je pristup web stranici pomoฤu VBA-e. To je omoguฤeno funkcijom Get, gdje URL prenosi se kao dvostruki navodnici.
Modul bi izgledao ovako:
Pritisnite F5 za izvrลกavanje makronaredbe. Otvorit ฤe se sljedeฤa web stranica Google Chrome kao ลกto je prikazano.
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
Sada je Excel makro spreman za izvoฤenje scrapingaping zadatke. Sljedeฤi korak pokazuje kako se informacije mogu objasnititracted primjenom Selenium i VBA-u.
Kako prikupiti podatke s web stranice pomoฤu VBA-a
Pretpostavimo da dnevni trgovac ลพeli svakodnevno pristupati podacima s web stranice. Svaki put kada dnevni trgovac klikne gumb, on bi trebao automatski preuzeti trลพiลกne podatke u Excel.
S gore navedene web stranice potrebno je pregledati element i promatrati kako su podaci strukturirani. Pristupite izvornom kodu HTML-a u nastavku pritiskom na Control + Shift +ja.
<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>
Kao ลกto vidite, podaci su strukturirani kao jedna HTML tablica. Stoga, da biste izvukli sve podatke iz HTML tablice, morate dizajnirati makro koji izvlaฤi podatke zaglavlja i odgovarajuฤe podatke povezane s tablicom. Izvrลกite zadatke u nastavku.
Korak 1) Formulirajte For petlju koja prolazi kroz HTML zaglavlje kao kolekciju. Selenium Upravljaฤki program locira informacije zaglavlja pomoฤu metoda FindElementByClass() i FindElementByTag(), kao ลกto je prikazano.
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
Korak 2) Dalje, Selenium Upravljaฤki program pronalazi podatke tablice koristeฤi sliฤan pristup. Napiลกite sljedeฤi kod:
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
Excel se moลพe inicijalizirati pomoฤu atributa Range ili Cells lista. Kako bi se smanjila sloลพenost VBA skripte, podaci kolekcije inicijaliziraju se atributom Cells lista 2 u radnoj knjizi. Atribut Text pomaลพe da se tekst smjesti pod HTML oznaku.
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 modul bi izgledao ovako:
Korak 3) Nakon ลกto je makro skripta spremna, dodijelite potprogram gumbu u Excelu i zatvorite VBA modul. Oznaฤite gumb kao Osvjeลพi ili bilo kojim prikladnim nazivom. U ovom primjeru, gumb je oznaฤen kao Osvjeลพi.
Korak 4) Pritisnite gumb Osvjeลพi da biste dobili donji ispis.
Korak 5) Usporedite rezultate u Excelu s rezultatima u Google Chrome.












