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.

  • ๐Ÿงฐ Selenium Web Driver: VBA koristi Selenium biblioteka tipova za pogon Google Chrome za grebanjeping.
  • ๐Ÿ“š Biblioteka tipova: The Selenium Biblioteka tipova mora se referencirati prije nego ลกto se mogu deklarirati objekti WebDrivera.
  • ๐Ÿš€ Zapoฤni i uzmi: Metoda Start otvara Chrome, a metoda Get uฤitava ciljnu web stranicu URL.
  • ๐Ÿ”Ž Lokatori elemenata: FindElementByClass i FindElementsByTag pronalaze zaglavlje tablice i podatkovne ฤ‡elije.
  • ๐Ÿ“Š Zapiลกi u ฤ‡elije: Ugnijeลพฤ‘ena petlja For Each zapisuje vrijednosti zaglavlja i retka u ฤ‡elije radnog lista.
  • ๐Ÿค– AI pomoฤ‡: AI kopiloti pomaลพu u pisanju, otklanjanju pogreลกaka i odrลพavanju Selenium VBA skripte kako se web-mjesta mijenjaju.

Selenium VBA Excel tutorijal

ล 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.

Pripremite Excel makro prije brisanja podatakaping koristeฤ‡i Selenium

Korak 2) Odaberite opciju Visual Basic pod vrpcom za razvojne programere.

Pripremite Excel makro prije brisanja podatakaping koristeฤ‡i Selenium

Korak 3) Umetnite novi modul.

Pripremite Excel makro prije brisanja podatakaping koristeฤ‡i Selenium

Korak 4) Inicijalizirajte novu potprogramu i nazovite je test2.

Sub test2()
End Sub

Rezultat u modulu bi bio sljedeฤ‡i:

Pripremite Excel makro prije brisanja podatakaping koristeฤ‡i Selenium

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.

Upuฤ‡ivanje Selenium Biblioteka tipova u Excelu VBA

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:

Otvoren Google Chrome koristeฤ‡i VBA

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:

Otvori web-stranicu u Google Chrome koristeฤ‡i VBA

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

Otvori web-stranicu u Google Chrome koristeฤ‡i VBA

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:

Scrape informacije s web stranice pomoฤ‡u VBA

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.

Scrape informacije s web stranice pomoฤ‡u VBA

Korak 4) Pritisnite gumb Osvjeลพi da biste dobili donji ispis.

Scrape informacije s web stranice pomoฤ‡u VBA

Korak 5) Usporedite rezultate u Excelu s rezultatima u Google Chrome.

Scrape informacije s web stranice pomoฤ‡u VBA

Pitanja i odgovori

Excelu je potreban Selenium Biblioteka tipova, instalirana putem SeleniumBasic, referencirano u VBA editoru pod Alati, Reference. Ova biblioteka pruลพa objekt WebDriver i metode kao ลกto su Start, Get i FindElementByClass koje se koriste za automatizaciju preglednika.

Selenium VBA moลพe upravljati Google Chrome, Mozilla Firefox, Microsoft Edgei Internet Explorer. Chrome je najฤeลกฤ‡i izbor. Svaki preglednik treba svoj odgovarajuฤ‡i WebDriver, a isti VBA kod moลพe mijenjati preglednike uz minimalne promjene.

The Metoda Internet Explorera koristi HTML objektnu biblioteku i samo IE, koji je zastario. Selenium pokreฤ‡e moderne preglednike poput Chromea i nudi podrลกku za viลกe preglednika i pouzdanije lociranje elemenata.

Da. Kopiloti s umjetnom inteligencijom mogu generirati Selenium VBA kod iz opisa, predlaลพu lokatore elemenata i pomaลพu u otklanjanju pogreลกaka. Kada se web stranica promijeni, umjetna inteligencija moลพe predloลพiti aลพurirane selektore, smanjujuฤ‡i ruฤni napor odrลพavanja scraping makroi.

Umjetna inteligencija dodaje inteligentno otkrivanje elemenata, naredbe na prirodnom jeziku i lokatore za samoobnavljanje automatizaciji preglednika. Ove znaฤajke strojnog uฤenja omoguฤ‡uju alatima da se automatski prilagode promjenama izgleda, ฤineฤ‡i scraping jednostavnim.ping i testiranje otpornije od fiksnih, ฤvrsto kodiranih skripti.

Saลพmite ovu objavu uz: