Web Scrapping med VBA
Hvad er data scrapingping?
Data scrapingping er teknikken, der hjรฆlper i eks'entracoverfรธring af รธnskede oplysninger fra en HTML-webside til en lokal fil, der findes pรฅ din lokale maskine. Normalt kan en lokal fil svare til en Excel-fil, Word-fil eller for eksempel en hvilken som helst anden Microsoft kontoransรธgning. Det hjรฆlper med at kanalisere kritisk information fra websiden.
Dataskrabetping bliver simpelt, nรฅr man arbejder pรฅ et forskningsbaseret projekt dagligt, og et sรฅdant projekt er udelukkende afhรฆngigt af internettet og en hjemmeside. For yderligere at illustrere emnet kan vi tage eksemplet med en daytrader, der kรธrer en Excel-makro til at trรฆkke markedsinformation fra en finanshjemmeside ind i et Excel-ark ved hjรฆlp af VBA.
Sรฅdan forbereder du en Excel-makro fรธr du udfรธrer datascrapingping bruger Internet Explorer?
Der er visse forudsรฆtninger, der skal udfรธres pรฅ Excel-makrofilen, fรธr man gรฅr i gang med dataskrabning.ping i Excel.
Disse forudsรฆtninger er som fรธlger: -
Trin 1) ร bn en Excel-baseret makro og fรฅ adgang til udviklermuligheden Excel.
Trin 2) Vรฆlg Visual Basic-indstillingen under Udviklerbรฅnd.
Trin 3) Indsรฆt et nyt modul.
Trin 4) Initialiser en ny underrutine
Sub test() End sub
Modulet vil resultere som fรธlger: -
Trin 5) Fรฅ adgang til referencemuligheden under vรฆrktรธjsfanen og reference Microsoft HTML-objektbibliotek og Microsoft internet kontrol.
Fรธlgende filer skal refereres til modulet, da det hjรฆlper med at รฅbne Internet Explorer og letter udviklingen af โโmakroscripting.
Nu er Excel-filen klar til at interagere med Internet Explorer. Det nรฆste trin ville vรฆre at inkorporere makroskripter, der ville lette dataskrabningen.ping i HTML.
Hvordan รฅbner man Internet Explorer ved hjรฆlp af Excel VBA?
Trin 1) Initialiser variablen i underrutinerne som vist nedenfor
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument
Trin 2) For at รฅbne Internet Explorer ved hjรฆlp af VBA, skriv altsรฅ synlig=sand og tryk F5.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Ie.visible=true
Modulet ser sรฅledes ud: -
Hvordan รฅbner man hjemmeside i Internet Explorer ved hjรฆlp af VBA?
Her er trin til at รฅbne webstedet 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 inkorporere adgang til et websted ved hjรฆlp af VBA. Dette lettes af Navigate Attribute, hvor URL'en skal passere som dobbelte anfรธrselstegn i attributten. Fรธlg de fรธlgende trin 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
Trin 2) โ Tryk pรฅ F5 for at udfรธre makroen. Den fรธlgende webside vil blive รฅbnet som vist
Nu er Excel-makroen klar til at udfรธre scratch'en.ping funktioner. Det nรฆste trin ville vise, hvordan informationen kan udvekslestrachentet fra Internet Explorer ved hjรฆlp af VBA.
Hvordan skraber man information fra webstedet ved hjรฆlp af VBA?
Antag, at daytraderen รธnsker at fรฅ adgang til data fra hjemmesiden pรฅ daglig basis. Hver gang dagshandleren trykker pรฅ knappen, skal den automatisk trรฆkke markedsdataene ind i Excel.
Fra ovenstรฅende hjemmeside vil det vรฆre nรธdvendigt at inspicere et element og observere, hvordan data er struktureret.
Trin 1) Fรฅ adgang til nedenstรฅende HTML-kildekode ved at trykke pรฅ kontrol + 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 ville 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
Da det kan ses, at data er struktureret som en enkelt HTML-tabel. Derfor, for at trรฆkke hele data fra html-tabellen, ville det krรฆve design af makro, som indsamler dataene i form af en samling.
Samlingen ville derefter blive indsat i excel. For at opnรฅ de รธnskede resultater skal du udfรธre nedenstรฅende trin: -
Trin 2) Initialiser HTML-dokumentet i underrutinen
VBA-modulet ville se ud som fรธlger: -
Trin 3) Initialiser samlingselementet i HTML-dokumentet
VBA-modulet ville se ud 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
Set ecoll = doc.getElementsByTagName("table")
Trin 4) Initialiser Excel-arkcellerne ved hjรฆlp af indlejret lรธkke som vist
VBA-modulet ville se ud 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
Set ecoll = doc.getElementsByTagName("table")
Excel kan initialiseres ved at bruge range-attributten for excel-arket eller gennem celle-attributten for excel-arket. For at reducere kompleksiteten af โโVBA-scriptet initialiseres indsamlingsdataene til excel-celle-attributten for ark 1, der findes i projektmappen.
Nรฅr makroscriptet er klar, skal du videregive og tildele subrutinen til excel-knappen og afslutte modulet i VBA. Mรฆrk knappen som opdatering eller et hvilket som helst 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 af Internet Explorer
Resumรฉ
- Dataskrabetping tillader brugeren kun at skrabe de oplysninger ud, som brugeren รธnsker. For at finde de bedste vรฆrktรธjer til dette formรฅl kan du se denne liste over webscraping.ping vรฆrktรธjer, der kan hjรฆlpe dig effektivt med attracde รธnskede oplysninger fra forskellige hjemmesider.
- Arping kan udfรธres ved hjรฆlp af internet explorer.
- Processen med scraping er langsommere i tilfรฆlde af Internet Explorer; den leverer dog de รธnskede resultater til brugeren.
- Skrabenping bรธr udfรธres med absolut forsigtighed og omhu, da det kan beskadige og fรฅ det system, der bruges til scratching, til at gรฅ ned.ping.











