Web scraping s VBA
Što je Data Scraping?
Struganje podataka je tehnika koja pomaže u izdvajanju željenih informacija s HTML web stranice u lokalnu datoteku koja se nalazi na vašem lokalnom računalu. Uobičajeno, lokalna datoteka može odgovarati excel datoteci, word datoteci ili bilo kojoj drugoj Microsoft uredska aplikacija. Pomaže u kanaliziranju kritičnih informacija s web stranice.
Skrapiranje podataka postaje jednostavno kada se svakodnevno radi na projektu temeljenom na istraživanju, a takav projekt isključivo ovisi o internetu i web stranici. Za daljnju ilustraciju teme, uzmimo primjer dnevnog trgovca koji pokreće Excel makronaredbu za povlačenje tržišnih informacija s financijske web stranice u Excel tablicu pomoću VBA.
Kako pripremiti Macro programa Excel prije izvođenja struganja podataka pomoću Internet Explorera?
Postoje određeni preduvjeti koji se moraju izvršiti na Excel makro datoteci prije nego što se uđe u proces struganja podataka u Excelu.
Ovi preduvjeti su sljedeći: –
Korak 1) Otvorite makronaredbu temeljenu na Excelu i pristupite opciji programera u excelu.
Korak 2) Odaberite opciju Visual Basic na vrpci za razvojne programere.
Korak 3) Umetnite novi modul.
Korak 4) Inicijalizirajte novu potprogram
Sub test() End sub
Modul bi rezultirao kako slijedi: –
Korak 5) Pristupite opciji reference pod karticom alata i referencom Microsoft Biblioteka HTML objekata i Microsoft kontrola interneta.
Sljedeće datoteke trebaju se odnositi na modul jer pomaže pri otvaranju Internet Explorera i olakšava razvoj makro skriptiranja.
Sada je Excel datoteka spremna za interakciju s Internet Explorerom. Sljedeći korak bio bi uključivanje makro skripti koje bi olakšale struganje podataka u HTML-u.
Kako otvoriti Internet Explorer koristeći Excel VBA?
Korak 1) Inicijalizirajte varijablu u potprogramima kao što je prikazano u nastavku
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument
Korak 2) Da biste otvorili Internet Explorer koristeći VBA, napišite tj. vidljivo=istinito 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 koristeći VBA?
Ovdje su koraci za otvaranje web stranice u Internet Exploreru pomoću VBA
Korak 1) Nakon što ste u mogućnosti pristupiti Internet Exploreru koristeći Excel VBA, sljedeći korak uključit će pristup web stranici pomoću VBA. Ovo je omogućeno atributom Navigacije, pri čemu URL mora proći kao dvostruki navodnici u atributu. Slijedite sljedeće korake 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
Korak 2) – Pritisnite F5 da biste izvršili makro. Sljedeća web-stranica bi se otvorila kao što je prikazano
Sada je Excel makronaredba spremna za izvođenje funkcija struganja. Sljedeći korak bi prikazao kako se informacije mogu izvući iz Internet Explorera pomoću VBA.
Kako izgrebati informacije s web stranice pomoću VBA?
Pretpostavimo da dnevni trgovac želi pristupiti podacima s web stranice na dnevnoj bazi. Svaki put kad dnevni trgovac pritisne tipku, trebao bi automatski povući tržišne podatke u excel.
S gornje web stranice bilo bi potrebno pregledati element i promatrati kako su podaci strukturirani.
Korak 1) Pristupite donjem izvornom kodu HTML-a pritiskom na control + Shift + I
<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 se može vidjeti da su podaci strukturirani kao jedna HTML tablica. Stoga, da bi se izvukli cijeli podaci iz html tablice, bilo bi potrebno dizajnirati makronaredbu koja prikuplja podatke u obliku zbirke.
Kolekcija bi zatim bila zalijepljena u excel. Da biste postigli željene rezultate, provedite dolje navedene korake: –
Korak 2) Inicijalizirajte Html dokument u potprogramu
VBA modul bi izgledao ovako: –
Korak 3) Inicijalizirajte element zbirke prisutan u HTML dokumentu
VBA modul bi izgledao ovako: –
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 lista programa Excel uz pomoć ugniježđene petlje kao što je prikazano
VBA modul bi izgledao ovako: –
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 raspona na Excel tablici ili putem atributa ćelija na Excel tablici. Kako bi se smanjila složenost VBA skripte, podaci o zbirci se inicijaliziraju na atribut ćelija programa Excel na listu 1 koji se nalazi u radnoj knjizi.
Nakon što je makro skripta spremna, prođite i dodijelite potprogram gumbu excel i izađite iz modula VBA. Označite gumb kao osvježi ili bilo kojim prikladnim nazivom koji bi mu se mogao inicijalizirati. Za ovaj primjer, gumb je inicijaliziran kao osvježenje.
Korak 5) Pritisnite tipku za osvježavanje kako biste dobili dolje navedeni izlaz
Korak 6) Usporedite rezultate u excelu s rezultatima internet explorera
Rezime
- Struganje podataka omogućuje korisniku da izvuče samo one informacije koje želi. Da biste pronašli najbolje alate za tu svrhu, pogledajte ovaj popis alata za struganje weba koji vam mogu pomoći da učinkovito izvučete željene informacije s različitih web stranica.
- Scraping se može izvesti pomoću Internet Explorera.
- Proces struganja sporiji je u slučaju internet explorera; međutim, korisniku daje željene rezultate.
- Struganje treba izvoditi s apsolutnom pažnjom i oprezom jer može oštetiti i srušiti sustav koji se koristi za struganje.