VBA Web Scrapping u Excel
⚡ Pametni sažetak
Web scrapingping s VBA extracprenosi podatke s HTML web stranica izravno u Excel, koristeći automatizaciju Internet Explorera i Microsoft HTML biblioteka objekata za navigaciju web-mjestom, čitanje HTML tablice i zapisivanje prikupljenih vrijednosti u ćelije radnog lista.

Što je scraping podatakaping?
Podaci o brisanjuping je tehnika koja pomaže bivšimtracželjene informacije s HTML web stranice u lokalnu datoteku na vašem računalu. Obično je ta lokalna datoteka Excel datoteka, Word datoteka ili bilo koja druga Microsoft Aplikacija sustava Office. Pomaže u usmjeravanju važnih informacija s web stranice.
Podaci o brisanjuping postaje vrijedno u istraživačkom projektu koji svakodnevno ovisi o internetu. Za ilustraciju, razmotrimo dnevnog trgovca koji pokreće Excel makro za preuzimanje tržišnih informacija s financijske web stranice u Excel tablicu pomoću VBA-e.
Kako pripremiti Excel makro prije brisanja podatakaping (Internet Explorer)
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.
Sub test() End Sub
Modul bi rezultirao sljedećim:
Korak 5) Pristupite opciji Referenca pod karticom Alati i referencirajte se na Microsoft Biblioteka HTML objekata i Microsoft Internetske kontrole.
Sljedeće datoteke moraju biti referencirane na modul jer pomažu u otvaranju Internet Explorera i olakšavaju makro skriptiranje.
Sada je Excel datoteka spremna za interakciju s Internet Explorerom. Sljedeći korak je uključivanje makro skripti koje olakšavaju brisanje podataka.ping u HTML-u.
Kako otvoriti Internet Explorer pomoću Excel VBA
Korak 1) Inicijalizirajte varijablu u potprogramu kao što je prikazano dolje.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument
Korak 2) Za otvaranje Internet Explorera pomoću VBA, napišite ie.Visible = True i pritisnite F5.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument ie.Visible = True
Modul bi izgledao ovako:
Kako otvoriti web stranicu u Internet Exploreru pomoću VBA-a
Evo koraka za otvaranje web stranice u Internet Exploreru pomoću VBA-a.
Korak 1) Nakon što možete pristupiti Internet Exploreru pomoću Excel VBA, sljedeći korak je pristup web stranici pomoću VBA. To je olakšano atributom Navigate, gdje je URL prenosi se kao dvostruki navodnici. Slijedite prikazane korake.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.Navigate "https://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE
Korak 2) Pritisnite F5 za izvršavanje makronaredbe. Otvorit će se sljedeća web stranica kao što je prikazano.
Sada je Excel makro spreman za izvođenje scrapingaping funkcije. Sljedeći korak pokazuje kako se informacije mogu objasnititracpreuzeto iz Internet Explorera pomoću VBA-e.
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.
Korak 1) 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>
Izvorni kod bi bio sljedeći:
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.Navigate "https://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE Set doc = ie.document
Kao što vidite, podaci su strukturirani kao jedna HTML tablica. Stoga, da biste izvukli sve podatke iz HTML tablice, morate dizajnirati makro koji prikuplja podatke kao kolekciju.
Kolekcija se zatim lijepi u Excel. Da biste postigli željene rezultate, slijedite korake u nastavku.
Korak 2) Inicijalizirajte HTML dokument u potprogramu.
Korak 3) Inicijalizirajte element kolekcije prisutan u HTML dokumentu.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.Navigate "https://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE Set doc = ie.document Set ecoll = doc.getElementsByTagName("table")
Korak 4) Inicijalizirajte ćelije Excel tablice pomoću ugniježđene petlje kao što je prikazano.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.Navigate "https://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE Set doc = ie.document Set ecoll = doc.getElementsByTagName("table")
Excel se može inicijalizirati pomoću atributa Range ili atributa Cells lista. Kako bi se smanjila složenost VBA skripte, podaci kolekcije inicijaliziraju se atributom Cells lista 1 u radnoj knjizi.
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 5) Pritisnite gumb Osvježi da biste dobili donji ispis.
Korak 6) Usporedite rezultate u Excelu s rezultatima u Internet Exploreru.











