Visual Basic for Applications:
Verkkosivun lataaminen
Kuinka:
Voit ladata web-sivun VBA:lla käyttämällä Microsoft XML, v6.0 (MSXML6) -kirjastoa, joka mahdollistaa palvelimen HTTP-pyynnöt. Ennen koodiin sukeltamista, varmista, että olet ottanut tämän viitteen käyttöön VBA-editorissasi menemällä kohtaan Työkalut
-> Viitteet
ja merkitsemällä Microsoft XML, v6.0
.
Tässä on yksinkertainen esimerkki siitä, kuinka ladata web-sivun HTML-sisältö:
Sub DownloadWebPage()
Dim request As Object
Dim url As String
Dim response As String
' Alusta XML HTTP -pyyntöobjekti
Set request = CreateObject("MSXML2.XMLHTTP")
url = "http://www.example.com"
' Avaa synkronoitu pyyntö
request.Open "GET", url, False
' Lähetä pyyntö palvelimelle
request.send
' Hanki vastausteksti
response = request.responseText
' Tulosta vastaus välittömästi ikkunaan (virheenkorjaustarkoituksiin)
Debug.Print response
' Siivoa
Set request = Nothing
End Sub
Tämä alirutiinin suoritus tulostaa HTML:n http://www.example.com
-osoitteesta VBA-editorin Välitön-ikkunaan. Huomaa, että False
-parametri Open
-metodissa tekee pyynnöstä synkronisen, mikä tarkoittaa, että koodi odottaa, kunnes verkkosivu on ladattu, ennen kuin siirtyy seuraavalle riville.
Syväsukellus
Esitelty tekniikka perustuu MSXML:ään, Microsoftin toteutukseen XML HTTP -pyyntöstandardista, jota käytetään usein AJAX-pyyntöihin web-kehityksessä. Tämä komponentti on ollut osa Microsoftin teknologiapinoa jo pitkän aikaa, tehden siitä vankan valinnan verkkopyyntöihin VBA:ssa.
Kuitenkin nojautuminen MSXML:ään ja VBA:han web-sisällön lataamiseen ja jäsentämiseen voi olla rajoittavaa, erityisesti nykyaikaisten web-sovellusten kanssa, jotka käyttävät raskaasti JavaScriptiä dynaamisen sisällön renderöinnissä. Nämä rajoitteet saattavat tehdä muista kielistä tai työkaluista, kuten Pythonista kirjastoineen, kuten BeautifulSoup tai Selenium, sopivampia web-skaalaustehtäviin niiden kyvyn vuoksi suorittaa JavaScriptiä ja käsitellä monimutkaisia verkkosivustojen vuorovaikutuksia.
Huolimatta tästä, yksinkertaisiin tehtäviin, jotka sisältävät suoraviivaista HTML-sisällön noutamista tai kun työskennellään Office-sovellusten rajoissa, VBA pysyy käytännöllisenä työkaluna. Sen integraatio Office-pakettiin mahdollistaa suoran asiakirjojen käsittelyn web-sisällön perusteella, tarjoten ainutlaatuisen edun tietyissä käyttötapauksissa.