VBA Web Scrapping til Excel

โšก Smart opsummering

Webskraberingping med VBA-eksempeltracts-data fra HTML-websider direkte til Excel ved hjรฆlp af Internet Explorer-automatisering og Microsoft HTML-objektbibliotek til at navigere pรฅ et websted, lรฆse en HTML-tabel og skrive de indsamlede vรฆrdier i regnearksceller.

  • ๐Ÿงฐ VBA-automatisering: VBA driver Internet Explorer fra Excel til at indlรฆse en webside og lรฆse dens HTML.
  • ๐Ÿ“š Nรธdvendige referencer: Microsoft HTML-objektbibliotek og Microsoft Internetkontroller skal refereres til i projektet.
  • ๐ŸŒ Navigeringsmetode: Navigate-metoden รฅbner et mรฅl URL, og koden venter, indtil siden er klar.
  • ๐Ÿงฑ HTML-tabelparsing: getElementsByTagName lรฆser tabellen, sรฅ dens rรฆkker og celler kan gennemgรฅs i en lรธkke.
  • ๐Ÿ“Š Skriv til celler: De indsamlede vรฆrdier skrives i regnearksceller, ofte bag en Opdater-knap.
  • ๐Ÿค– AI Assistance: AI-vรฆrktรธjer og copiloter genererer nu scraberping kode og tilpasse selektorer, nรฅr layouts รฆndres.

VBA Web Scrapping til Excel

Hvad er data scrapingping?

Data scrapingping er teknikken, der hjรฆlper ekstract รธnskede oplysninger fra en HTML-webside til en lokal fil pรฅ din maskine. Normalt er den lokale fil en Excel-fil, en Word-fil eller en hvilken som helst anden Microsoft Office-applikation. Det hjรฆlper med at kanalisere vigtige oplysninger fra websiden.

Data scrapingping bliver vรฆrdifuld i et forskningsbaseret projekt, der er afhรฆngig af internettet dagligt. For at illustrere, kan man forestille sig en daytrader, der kรธrer en Excel-makro for at trรฆkke markedsoplysninger fra en finanshjemmeside ind i et Excel-ark ved hjรฆlp af VBA.

Sรฅdan forbereder du Excel-makroen fรธr dataskrabningping (Internet Explorer)

Der er visse forudsรฆtninger, der skal udfรธres pรฅ Excel-makrofilen, fรธr dataskrabningen pรฅbegyndes.ping proces.

Disse forudsรฆtninger er som fรธlger:

Trin 1) ร…bn en Excel-baseret makro, og รฅbn Udvikler-indstillingen i Excel.

Forbered Excel-makro fรธr dataskrabningping ved hjรฆlp af Internet Explorer

Trin 2) Vรฆlg Visual Basic-indstillingen under Udvikler-bรฅndet.

Forbered Excel-makro fรธr dataskrabningping ved hjรฆlp af Internet Explorer

Trin 3) Indsรฆt et nyt modul.

Forbered Excel-makro fรธr dataskrabningping ved hjรฆlp af Internet Explorer

Trin 4) Initialiser en ny subrutine.

Sub test()
End Sub

Modulet ville resultere som fรธlger:

Forbered Excel-makro fรธr dataskrabningping ved hjรฆlp af Internet Explorer

Trin 5) Fรฅ adgang til referencefunktionen under fanen Vรฆrktรธjer, og se pรฅ Microsoft HTML-objektbibliotek og Microsoft Internetkontroller.

Fรธlgende filer skal refereres til modulet, da de hjรฆlper med at รฅbne Internet Explorer og muliggรธre makroscripting.

Henvisning Microsoft HTML-objektbibliotek og internetkontroller

Nu er Excel-filen klar til at interagere med Internet Explorer. Nรฆste trin er at inkorporere makroskripter, der letter dataskrabning.ping i HTML.

Sรฅdan รฅbner du Internet Explorer ved hjรฆlp af Excel VBA

Trin 1) Initialiser variablen i subrutinen 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 ie.Visible = True og tryk pรฅ F5.

Sub test()
Dim ie As New InternetExplorer 
Dim doc As New HTMLDocument
ie.Visible = True

Modulet ville se sรฅledes ud:

ร…bn Internet Explorer ved hjรฆlp af Excel VBA

ร…bn Internet Explorer ved hjรฆlp af Excel VBA

Sรฅdan รฅbner du en hjemmeside i Internet Explorer ved hjรฆlp af VBA

Her er trinnene til at รฅbne et websted i Internet Explorer ved hjรฆlp af VBA.

Trin 1) Nรฅr du har adgang til Internet Explorer ved hjรฆlp af Excel VBA, er nรฆste trin at fรฅ adgang til et websted ved hjรฆlp af VBA. Dette gรธres lettere af Navigate-attributten, hvor URL sendes som dobbelte anfรธrselstegn. Fรธlg de viste trin.

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. Fรธlgende webside รฅbnes som vist.

ร…bn et websted i Internet Explorer ved hjรฆlp af VBA

Nu er Excel-makroen klar til at udfรธre scratchenping funktioner. Det nรฆste trin viser, hvordan informationen kan udvekslestrachentet fra Internet Explorer ved hjรฆlp af VBA.

Sรฅdan skraber du information fra et websted ved hjรฆlp af VBA

Antag, at daytraderen รธnsker at tilgรฅ dataene fra hjemmesiden dagligt. Hver gang daytraderen klikker pรฅ knappen, burde den automatisk hente markedsdataene ind i Excel.

Fra ovenstรฅende hjemmeside er det nรธdvendigt at inspicere et element og observere, hvordan dataene er struktureret.

Trin 1) Fรฅ adgang til kildekoden til HTML-koden nedenfor ved at trykke pรฅ Ctrl + Shift + Jeg.

<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

Som du kan se, er dataene struktureret som en enkelt HTML-tabel. For at hente alle dataene fra HTML-tabellen skal du derfor designe en makro, der indsamler dataene som en samling.

Samlingen indsรฆttes derefter i Excel. For at opnรฅ de รธnskede resultater skal du udfรธre nedenstรฅende trin.

Trin 2) Initialiser HTML-dokumentet i subrutinen.

Trin 3) Initialiser samlingselementet, der findes i HTML-dokumentet.

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 en indlejret lรธkke 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
Set doc = ie.document
Set ecoll = doc.getElementsByTagName("table")

Excel kan initialiseres ved hjรฆlp af attributten Range eller attributten Cells i arket. For at reducere kompleksiteten af โ€‹โ€‹VBA-scriptet initialiseres samlingsdataene til attributten Cells i Ark 1 i projektmappen.

Nรฅr makroskriptet er klar, skal du tildele subrutinen til en Excel-knap og afslutte VBA-modulet. Navngiv knappen som Opdater eller et andet passende navn. I dette eksempel er knappen mรฆrket Opdater.

Skrab oplysninger fra websted ved hjรฆlp af VBA

Trin 5) Tryk pรฅ Opdater-knappen for at fรฅ nedenstรฅende output.

Skrab oplysninger fra websted ved hjรฆlp af VBA

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

Skrab oplysninger fra websted ved hjรฆlp af VBA

Ofte Stillede Spรธrgsmรฅl

Der skal bruges to referencer i VBA-editoren under Vรฆrktรธjer, Referencer: Microsoft HTML-objektbibliotek og Microsoft Internetkontroller. De lader VBA รฅbne Internet Explorer, navigere til en URLog lรฆs sidens HTML-elementer.

Det afhรฆnger af hjemmesiden. Mange sider begrรฆnser automatiseret scraping.ping i deres servicevilkรฅr, sรฅ gennemgรฅ dem fรธrst og undgรฅ at indsamle personlige eller ophavsretligt beskyttede data. Scraping Offentlige, tilladte data til personlig analyse er generelt lavere risikable.

Internet Explorer er forรฆldet, sรฅ moderne projekter bruger Selenium VBA tilgang, som driver Chrome, Firefox, eller Edge. Selenium tilbyder understรธttelse af flere browsere og mere pรฅlidelig elementplacering til nuvรฆrende websteder.

Ja. AI-drevne scrapers og copiloter kan identificere datafelter, generere eks.trackode og tilpasse sig automatisk layoutรฆndringer. Maskinlรฆringsmodeller analyserer ogsรฅ ustrukturerede sider, hvilket reducerer den manuelle indsats ved at skrive og vedligeholde scrape.ping scripts.

AI bruger computer vision og naturlig sprogbehandling til at genkende tabeller, priser og tekst pรฅ en side, selv uden faste selektorer. Denne intelligente eks...traction gรธr skrabeping mere robust, nรฅr en hjemmeside รฆndrer sin struktur.

Opsummer dette indlรฆg med: