Nettskraping med VBA

Hva er dataskraping?

Dataskraping er teknikken som hjelper til med å trekke ut ønsket informasjon fra en HTML-webside til en lokal fil som finnes på din lokale maskin. Normalt kan en lokal fil tilsvare en excel-fil, en word-fil, eller for å si hvilken som helst Microsoft kontorsøknad. Det hjelper med å kanalisere viktig informasjon fra nettsiden.

Dataskrapingen blir enkel når man jobber med et forskningsbasert prosjekt til daglig, og et slikt prosjekt er rent avhengig av internett og nettside. For å illustrere emnet ytterligere, la oss ta eksemplet med en daytrader som kjører en excel-makro for å trekke markedsinformasjon fra et finansnettsted til et excel-ark ved hjelp av VBA.

Hvordan forberede Excel Macro før du utfører dataskraping ved hjelp av Internet Explorer?

Det er visse forutsetninger som må utføres på excel-makrofilen før du går inn i prosessen med dataskraping i excel.

Disse forutsetningene er som følger: -

Trinn 1) Åpne en Excel-basert makro og få tilgang til utvikleralternativet Excel.

Forbered Excel-makro før du utfører dataskraping med Internet Explorer

Trinn 2) Velg Visual Basic-alternativet under utviklerbånd.

Forbered Excel-makro før du utfører dataskraping med Internet Explorer

Trinn 3) Sett inn en ny modul.

Forbered Excel-makro før du utfører dataskraping med Internet Explorer

Trinn 4) Initialiser en ny subrutine

Sub test()
End sub

Modulen vil resultere som følger: -

Forbered Excel-makro før du utfører dataskraping med Internet Explorer

Trinn 5) Få tilgang til referansealternativet under verktøyfanen og referanse Microsoft HTML-objektbibliotek og Microsoft internettkontroll.

Følgende filer skal refereres til modulen da den hjelper til med å åpne Internet Explorer og letter utviklingen av makroskripting.

Forbered Excel-makro før du utfører dataskraping med Internet Explorer

Nå er Excel-filen klar til å samhandle med Internet Explorer. Det neste trinnet vil være å innlemme makroskript som vil lette dataskraping i HTML.

Hvordan åpne Internet Explorer ved hjelp av Excel VBA?

Trinn 1) Initialiser variabelen i subrutinene som vist nedenfor

Sub test()
Dim ie As New InternetExplorer 
Dim doc As New HTMLDocument

Trinn 2) For å åpne Internet Explorer ved hjelp av VBA, skriv dvs. synlig=sant og trykk F5.

Sub test()
Dim ie As New InternetExplorer 
Dim doc As New HTMLDocument
Ie.visible=true

Modulen vil se slik ut: -

Åpne Internet Explorer med Excel VBA

Åpne Internet Explorer med Excel VBA

Hvordan åpne nettstedet i Internet Explorer ved hjelp av VBA?

Her er trinnene for å åpne nettstedet i Internet exploer ved hjelp av VBA

Trinn 1) Når du får tilgang til internett explorer ved hjelp av Excel VBA, vil neste trinn inkludere tilgang til et nettsted ved hjelp av VBA. Dette tilrettelagt av Navigate Attribute, der URL-en må passere som doble anførselstegn i attributtet. Følg følgende trinn som vist.

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

Trinn 2) – Trykk F5 for å utføre makroen. Følgende nettside vil bli åpnet som vist

Åpne nettstedet i Internet Explorer ved hjelp av VBA

Nå er excel-makroen klar med hensyn til å utføre skrapefunksjonene. Det neste trinnet viser hvordan informasjonen kan trekkes ut fra Internet Explorer ved hjelp av VBA.

Hvordan skrape informasjon fra nettstedet ved å bruke VBA?

Anta at daytraderen ønsker å få tilgang til dataene fra nettstedet på daglig basis. Hver gang dagshandleren trykker på knappen, skal den automatisk trekke markedsdataene inn i Excel.

Fra nettstedet ovenfor vil det være nødvendig å inspisere et element og observere hvordan dataene er strukturert.

Trinn 1) Få tilgang til HTML-kildekoden nedenfor ved å trykke på kontroll + 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>

Kildekoden vil være som følger: -

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

Som det kan sees at dataene er strukturert som en enkelt HTML-tabell. Derfor, for å trekke hele data fra html-tabellen, ville det kreve utforming av makro som samler dataene i form av en samling.

Samlingen vil deretter limes inn i Excel. For å oppnå, utfør de ønskede resultatene trinnene nedenfor: -

Trinn 2) Initialiser HTML-dokumentet i subrutinen

VBA-modulen vil se slik ut: -

Trinn 3) Initialiser samlingselementet som finnes i HTML-dokumentet

VBA-modulen vil se slik ut: -

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")

Trinn 4) Initialiser excel-arkcellene ved hjelp av nestet løkke som vist

VBA-modulen vil se slik ut: -

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 kan initialiseres ved å bruke range-attributtet til excel-arket eller gjennom cell-attributtet til excel-arket. For å redusere kompleksiteten til VBA-skriptet initialiseres innsamlingsdataene til excel-celleattributtet til ark 1 som finnes i arbeidsboken.

Når makroskriptet er klart, send og tilordne subrutinen til excel-knappen og gå ut av modulen til VBA. Merk knappen som oppdatering eller et hvilket som helst passende navn som kan initialiseres til den. For dette eksemplet initialiseres knappen som en oppdatering.

Skrap informasjon fra nettstedet ved å bruke VBA

Trinn 5) Trykk på oppdateringsknappen for å få utdataene nedenfor

Skrap informasjon fra nettstedet ved å bruke VBA

Trinn 6) Sammenlign resultatene i Excel med resultatene til Internet Explorer

Skrap informasjon fra nettstedet ved å bruke VBA

Sammendrag

  • Dataskrapingen lar brukeren skrape ut kun den informasjonen brukeren ønsker. For å finne de beste verktøyene for dette formålet, ta en titt på denne listen over verktøy for nettskraping som kan hjelpe deg effektivt å trekke ut ønsket informasjon fra forskjellige nettsteder.
  • Skraping kan utføres ved hjelp av Internet Explorer.
  • Prosessen med å skrape er langsommere når det gjelder Internet Explorer; den gir imidlertid de ønskede resultatene til brukeren.
  • Skrapingen bør utføres med absolutt forsiktighet og forsiktighet, da det kan skade og krasje systemet som brukes til skraping.