Webskrabning med VBA

Indholdsfortegnelse:

Anonim

Hvad er dataskrabning?

Dataskrabning er den teknik, der hjælper med udvinding af ønsket information fra en HTML-webside til en lokal fil, der findes i din lokale maskine. Normalt kan en lokal fil svare til en excel-fil, word-fil eller at sige ethvert Microsoft-kontorapplikation. Det hjælper med at kanalisere kritisk information fra websiden.

Dataskrabning bliver enkel, når man arbejder med et forskningsbaseret projekt dagligt, og et sådant projekt er rent afhængigt af internettet og hjemmesiden. For at illustrere yderligere om emnet, lad os tage eksemplet med en dagshandler, der kører en excel-makro til at trække markedsoplysninger fra et finansieringswebsted til et excel-ark ved hjælp af VBA.

I denne vejledning lærer du:

  • Hvad er dataskrabning?
  • Hvordan forberedes Excel-makro inden udførelse af dataskrabning ved hjælp af Internet Explorer?
  • Hvordan åbner jeg Internet Explorer ved hjælp af Excel VBA?
  • Hvordan åbner jeg websted i Internet explorer ved hjælp af VBA?
  • Hvordan skrabes information fra webstedet ved hjælp af VBA?

Hvordan forberedes Excel-makro inden udførelse af dataskrabning ved hjælp af Internet Explorer?

Der er visse forudsætninger, der skal udføres på excel-makrofilen, før de går i gang med dataskrabning i Excel.

Disse forudsætninger er som følger: -

Trin 1) Åbn en Excel-baseret makro, og få adgang til udviklerens mulighed for excel.

Trin 2) Vælg Visual Basic-indstilling under Udviklerbånd.

Trin 3) Indsæt et nyt modul.

Trin 4) Initialiser en ny subrutine

Sub test()End sub

Modulet ville resultere som følger: -

Trin 5) Få adgang til referencemuligheden under fanen værktøj og henvis Microsoft Microsoft Object Object Library og Microsofts internetkontrol.

Følgende filer henvises til modulet, da det hjælper med at åbne internet explorer og letter udviklingen af ​​makro-scripting.

Nu er Excel-filen klar til at interagere med Internet Explorer. Det næste trin ville være at inkorporere makro-scripts, der letter dataskrabning i HTML.

Hvordan åbner jeg Internet Explorer ved hjælp af Excel VBA?

Trin 1) Initialiser variablen i underrutinerne som vist nedenfor

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

Trin 2) For at åbne internet explorer ved hjælp af VBA, skriv dvs. synlig = sand og tryk på F5.

Sub test()Dim ie As New InternetExplorerDim doc As New HTMLDocumentIe.visible=true

Modulet ser ud som følger: -

Hvordan åbner jeg websted i Internet explorer ved hjælp af VBA?

Her er trin til at åbne websted i Internet exploer ved hjælp af VBA

Trin 1) Når du er i stand til at få adgang til Internet Explorer ved hjælp af Excel VBA, vil det næste trin omfatte adgang til et websted ved hjælp af VBA. Dette lettes af Navigate Attribute, hvor URL'en skal passere som dobbelt anførselstegn i attributten. Følg følgende trin 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

Trin 2) - Tryk på F5 for at udføre makroen. Den følgende webside åbnes som vist

Nu er excel-makroen klar med hensyn til udførelse af skrabefunktionerne. Det næste trin viser, hvordan oplysningerne kan udvindes fra internet explorer ved hjælp af VBA.

Hvordan skrabes information fra webstedet ved hjælp af VBA?

Antag, at den daglige erhvervsdrivende ønsker at få adgang til dataene fra hjemmesiden på daglig basis. Hver gang den daglige erhvervsdrivende trykker på klik på knappen, skal den automatisk trække markedsdataene til excel.

Fra ovenstående webside ville det være nødvendigt at inspicere et element og observere, hvordan dataene er struktureret.

Trin 1) Få adgang til nedenstående kildekode for HTML ved at trykke på kontrol + Skift + 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 ses, at dataene er struktureret som en enkelt HTML-tabel. Derfor, for at trække hele data fra html-tabellen, ville det kræve, at der designes en makro, der indsamler dataene i form af en samling.

Samlingen blev derefter indsat i excel. For at opnå udfører de ønskede resultater nedenstående trin: -

Trin 2) Initialiser Html-dokumentet i underrutinen

VBA-modulet ser ud som følger: -

Trin 3) Initialiser det indsamlingselement, der findes i HTML-dokumentet

VBA-modulet ser ud 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.documentSet ecoll = doc.getElementsByTagName("table")

Trin 4) Initialiser excel-arkcellerne ved hjælp af indlejret løkke som vist

VBA-modulet ser ud 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.documentSet ecoll = doc.getElementsByTagName("table")

Excel kan initialiseres ved hjælp af attributten interval for excel-arket eller gennem celler-attribut for excel-arket. For at reducere VBA-scriptets kompleksitet initialiseres indsamlingsdataene til attributten excelceller for ark 1, der er til stede i projektmappen.

Når makroscriptet er klar, skal du sende og tildele subrutinen til excel-knappen og afslutte modulet i VBA. Mærk knappen som opdatering eller ethvert passende navn, der kunne initialiseres til den. I dette eksempel initialiseres knappen som en opdatering.

Trin 5) Tryk på opdateringsknappen for at få nedenstående output

Trin 6) Sammenlign resultaterne i Excel med resultaterne fra Internet Explorer

Resumé:

  • Dataskrabningen giver brugeren mulighed for kun at skrabe de oplysninger ud, som brugeren ønsker.
  • Skrabning kan udføres ved hjælp af Internet Explorer.
  • Processen med skrabning er langsommere i tilfælde af internet explorer; dog leverer det de ønskede resultater til brugeren.
  • Skrabningen skal udføres med absolut forsigtighed og forsigtighed, da det kan skade og kollidere det system, der bruges til skrabning.
CompanyGroupPre Close (Rs)Current Price (Rs)% Change