Visual Basic for Applications:
Analysering av HTML
Hvordan:
I VBA kan du analysere HTML ved å bruke Microsoft HTML Object Library
. Legg til en referanse til dette biblioteket i VBA-editoren din ved å gå til Verktøy > Referanser og krysse av for Microsoft HTML Object Library
. Dette gir deg tilgang til klasser for å navigere og manipulere HTML-dokumenter.
Her er et enkelt eksempel som viser hvordan du laster et HTML-dokument fra en fil og trekker ut alle lenkene (ankertagger):
Sub ParseHTML()
Dim htmlDoc As MSHTML.HTMLDocument
Dim htmlElement As MSHTML.IHTMLElement
Dim htmlElements As MSHTML.IHTMLElementCollection
Dim htmlFile As String
Dim fileContent As String
' Last inn HTML-innhold fra en fil
htmlFile = "C:\sti\til\din\fil.html"
Open htmlFile For Input As #1
fileContent = Input$(LOF(1), 1)
Close #1
' Initialiser HTML-dokument
Set htmlDoc = New MSHTML.HTMLDocument
htmlDoc.body.innerHTML = fileContent
' Få alle anker-tagger
Set htmlElements = htmlDoc.getElementsByTagName("a")
' Loop gjennom alle anker-elementer og skriv ut href-attributten
For Each htmlElement In htmlElements
Debug.Print htmlElement.getAttribute("href")
Next htmlElement
End Sub
Dette skriptet leser innholdet av en HTML-fil, laster den inn i et HTMLDocument
-objekt, henter alle ankrelementer (<a>
-tagger), og itererer deretter over dem, og skriver ut href
-attributtet til hver i umiddelbart vindu.
Dypdykk:
Historisk sett har det å analysere HTML i VBA vært litt tungvint på grunn av mangel på direkte støtte for moderne web-skraping og dokumenthåndteringsteknologier. Microsoft HTML Object Library, til tross for å være kraftfull, er noe datert og kan ikke håndtere moderne webstandarder så smidig som nyere teknologier.
For komplekse HTML-analyse- og webskrapingsoppgaver, anbefales ofte alternative verktøy og språk som Python med biblioteker som Beautiful Soup eller Scrapy. Disse moderne verktøyene tilbyr mer fleksibilitet, bedre ytelse og er mer i tråd med gjeldende webstandarder. Imidlertid, når du jobber innenfor Microsoft Office-økosystemet, forblir det å bruke VBA med Microsoft HTML Object Library en verdifull ferdighet. Det låser opp direkte manipulasjon av HTML-innhold på en måte som integreres sømløst med applikasjoner som Excel og Access, og gir en enkel metode for å utføre oppgaver som involverer grunnleggende håndtering av HTML-dokumenter uten å måtte gå ut av det kjente VBA-miljøet.