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.

Pripremite Excel makronaredbu prije izvođenja struganja podataka pomoću Internet Explorera

Korak 2) Odaberite opciju Visual Basic na vrpci za razvojne programere.

Pripremite Excel makronaredbu prije izvođenja struganja podataka pomoću Internet Explorera

Korak 3) Umetnite novi modul.

Pripremite Excel makronaredbu prije izvođenja struganja podataka pomoću Internet Explorera

Korak 4) Inicijalizirajte novu potprogram

Sub test()
End sub

Modul bi rezultirao kako slijedi: –

Pripremite Excel makronaredbu prije izvođenja struganja podataka pomoću Internet Explorera

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.

Pripremite Excel makronaredbu prije izvođenja struganja podataka pomoću Internet Explorera

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: –

Otvorite Internet Explorer koristeći Excel VBA

Otvorite Internet Explorer koristeći Excel VBA

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

Otvorite web stranicu u Internet Exploreru koristeći VBA

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.

Scrape informacije s web stranice pomoću VBA

Korak 5) Pritisnite tipku za osvježavanje kako biste dobili dolje navedeni izlaz

Scrape informacije s web stranice pomoću VBA

Korak 6) Usporedite rezultate u excelu s rezultatima internet explorera

Scrape informacije s web stranice pomoću VBA

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.