Visual Basic for Applications:
HTML:n jäsentäminen

Kuinka:

VBA:ssa voit jäsentää HTML:ää käyttämällä Microsoft HTML Object Library -kirjastoa. Lisää viittaus tähän kirjastoon VBA-editorissasi siirtymällä kohtaan Työkalut > Viitteet ja valitsemalla Microsoft HTML Object Library. Tämä antaa sinulle pääsyn luokkiin HTML-dokumenttien navigointia ja manipulointia varten.

Tässä on yksinkertainen esimerkki, joka näyttää, miten voit ladata HTML-dokumentin tiedostosta ja poimia kaikki linkit (ankkuritagit):

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
    
    ' Lataa HTML-sisältö tiedostosta
    htmlFile = "C:\polku\tiedostoosi\file.html"
    Open htmlFile For Input As #1
    fileContent = Input$(LOF(1), 1)
    Close #1
    
    ' Alusta HTML-dokumentti
    Set htmlDoc = New MSHTML.HTMLDocument
    htmlDoc.body.innerHTML = fileContent
    
    ' Hanki kaikki ankkuritagit
    Set htmlElements = htmlDoc.getElementsByTagName("a")

    ' Käy läpi kaikki ankkurielementit ja tulosta href-attribuutti
    For Each htmlElement In htmlElements
        Debug.Print htmlElement.getAttribute("href")
    Next htmlElement
End Sub

Tämä skripti lukee HTML-tiedoston sisällön, lataa sen HTMLDocument-objektiin, hakee kaikki ankkurielementit (<a>-tagit) ja sitten iteroi niiden yli tulostaen kunkin href-attribuutin Välitön-ikkunaan.

Syväsukellus:

Historiallisesti HTML:n jäsentäminen VBA:ssa on ollut hieman hankalaa modernien web-skrapaus- ja dokumentinhallintateknologioiden suoran tuen puutteen vuoksi. Microsoft HTML Object Library on tehokas, mutta jonkin verran vanhentunut ja ei ehkä käsittele moderneja web-standardeja yhtä sujuvasti kuin uudemmat teknologiat.

Monimutkaisiin HTML-jäsentämis- ja web-skrapaustehtäviin suositellaan usein vaihtoehtoisia työkaluja ja kieliä, kuten Pythonia kirjastoineen, kuten Beautiful Soup tai Scrapy. Nämä modernit työkalut tarjoavat enemmän joustavuutta, parempaa suorituskykyä ja ovat enemmän linjassa nykyisten web-standardien kanssa. Kuitenkin, työskenneltäessä Microsoft Officen ekosysteemissä, VBA:n käyttäminen Microsoft HTML Object Libraryn kanssa on arvokas taito. Se mahdollistaa suoran HTML-sisällön manipuloinnin tavalla, joka integroituu saumattomasti sovelluksiin, kuten Excel ja Access, tarjoten suoraviivaisen menetelmän tehtävien suorittamiseen, jotka koskevat perus HTML-dokumenttien käsittelyä tarvitsematta poistua tutusta VBA-ympäristöstä.