Web Skraping med VBA

Innholdsfortegnelse:

Anonim

Hva er dataskraping?

Dataskraping er teknikken som hjelper til med å utvinne ønsket informasjon fra en HTML-webside til en lokal fil som er tilstede i din lokale maskin. Normalt kan en lokal fil svare til en excel-fil, word-fil eller å si noe Microsoft-kontorapplikasjon. Det hjelper med å kanalisere viktig informasjon fra websiden.

Dataskrapingen blir enkel når man jobber med et forskningsbasert prosjekt til daglig, og et slikt prosjekt er rent avhengig av internett og nettsted. For å illustrere temaet ytterligere, la oss ta eksemplet med en dagshandler som driver en excel-makro for å hente markedsinformasjon fra et finansnettsted til et excel-ark ved hjelp av VBA.

I denne opplæringen lærer du:

  • Hva er dataskraping?
  • Hvordan forbereder du Excel-makro før du utfører dataskraping ved hjelp av Internet Explorer?
  • Hvordan åpne Internet Explorer ved hjelp av Excel VBA?
  • Hvordan åpne nettsted i Internet explorer ved hjelp av VBA?
  • Hvordan skrape informasjon fra nettstedet ved hjelp av VBA?

Hvordan forbereder du Excel-makro 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 for Excel.

Trinn 2) Velg alternativet Visual Basic under utviklerbåndet.

Trinn 3) Sett inn en ny modul.

Trinn 4) Initialiser en ny subrutine

Sub test()End sub

Modulen vil resultere som følger: -

Trinn 5) Åpne referansealternativet under verktøykategorien og referer til Microsoft HTML Object Library og Microsoft internettkontroll.

Følgende filer skal refereres til modulen ettersom det hjelper å åpne Internet Explorer og letter utviklingen av makroskripting.

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

Hvordan åpne Internet Explorer ved hjelp av Excel VBA?

Trinn 1) Initialiser variabelen i underrutinene som vist nedenfor

Sub test()Dim ie As New InternetExplorerDim 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 InternetExplorerDim doc As New HTMLDocumentIe.visible=true

Modulen vil se slik ut: -

Hvordan åpne nettsted i Internet explorer ved hjelp av VBA?

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

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

Sub test()Dim, ie As New InternetExplorerDim doc As New HTMLDocumentDim ecoll As Objectie.Visible = Trueie.navigate"http://demo.guru99.com/test/web-table-element.php"DoDoEventsLoop Until ie.readyState = READYSTATE_COMPLETE

Trinn 2) - Trykk på F5 for å utføre makroen. Følgende webside ble åpnet som vist

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

Hvordan skrape informasjon fra nettstedet ved hjelp av VBA?

Anta at dagshandleren ønsker å få tilgang til dataene fra nettstedet på en daglig basis. Hver gang dagshandleren trykker på klikk på knappen, bør den automatisk trekke markedsdataene til å utmerke seg.

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

Trinn 1) Få tilgang til kildekoden nedenfor for HTML ved å trykke på kontroll + Shift + I

Kildekoden vil være som følger: -

Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocumentDim ecoll As Objectie.Visible = Trueie.navigate "http://demo.guru99.com/test/web-table-element.php"DoDoEventsLoop Until ie.readyState = READYSTATE_COMPLETESet doc = ie.document

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

Samlingen vil deretter limes inn i excel. For å oppnå utfører de ønskede resultatene trinnene nedenfor: -

Trinn 2) Initialiser HTML-dokumentet i underrutinen

VBA-modulen vil se slik ut: -

Trinn 3) Initialiser samlingselementet i HTML-dokumentet

VBA-modulen vil se slik ut: -

Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocumentDim ecoll As Objectie.Visible = Trueie.navigate "http://demo.guru99.com/test/web-table-element.php"DoDoEventsLoop Until ie.readyState = READYSTATE_COMPLETESet doc = ie.documentSet ecoll = doc.getElementsByTagName("table")

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

VBA-modulen vil se slik ut: -

Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocumentDim ecoll As Objectie.Visible = Trueie.navigate "http://demo.guru99.com/test/web-table-element.php"DoDoEventsLoop Until ie.readyState = READYSTATE_COMPLETESet doc = ie.documentSet ecoll = doc.getElementsByTagName("table")

Excel kan initialiseres ved hjelp av områdeattributtet til excel-arket eller gjennom celler-attributtet til excel-arket. For å redusere kompleksiteten til VBA-skriptet initialiseres innsamlingsdataene til excel-celler-attributtet til ark 1 som er til stede i arbeidsboken.

Når makroskriptet er klart, passerer du og tilordner underrutinen til excel-knappen og avslutter modulen til VBA. Merk knappen som oppdatering eller et passende navn som kan initialiseres til den. For dette eksemplet initialiseres knappen som en oppdatering.

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

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

Sammendrag:

  • Dataskrapingen lar brukeren bare skrape ut informasjonen som brukeren ønsker.
  • Skraping kan utføres ved hjelp av Internet Explorer.
  • Prosessen med skraping er tregere når det gjelder Internet Explorer. det leverer 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.
CompanyGroupPre Close (Rs)Current Price (Rs)% Change