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: