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.












