Visual Basic for Applications:
Hämta en webbsida
Hur man gör:
För att ladda ner en webbsida i VBA kan du använda Microsoft XML, v6.0 (MSXML6)-biblioteket, som möjliggör server HTTP-förfrågningar. Innan du dyker in i koden, se till att du har aktiverat denna referens i din VBA-editor genom att gå till Verktyg
-> Referenser
och markera Microsoft XML, v6.0
.
Här är ett enkelt exempel på hur man laddar ner HTML-innehållet av en webbsida:
Sub LaddaNerWebbsida()
Dim request As Object
Dim url As String
Dim response As String
' Initiera XML HTTP request-objektet
Set request = CreateObject("MSXML2.XMLHTTP")
url = "http://www.example.com"
' Öppna en synkron förfrågan
request.Open "GET", url, False
' Skicka förfrågan till servern
request.send
' Få svartexten
response = request.responseText
' Skriv ut svaret till det omedelbara fönstret (för felsökningsändamål)
Debug.Print response
' Städa upp
Set request = Nothing
End Sub
Att köra denna subrutin kommer att skriva ut HTML för http://www.example.com
till det Omedelbara Fönstret i VBA-editorn. Notera att False
-parametern i Open
-metoden gör förfrågan synkron, vilket innebär att koden kommer att vänta tills webbsidan är nedladdad innan den går vidare till nästa rad.
Fördjupning
Tekniken som visas bygger på MSXML, Microsofts implementering av XML HTTP Request-standarden, ofta använd för AJAX-förfrågningar inom webbutveckling. Denna komponent har varit en del av Microsofts teknikstack under en lång tid, vilket gör den till ett robust val för nätverksförfrågningar i VBA.
Dock kan beroendet på MSXML och VBA för nedladdning och analys av webbinnehåll vara begränsande, särskilt med moderna webbapplikationer som använder JavaScript i stor utsträckning för dynamiskt innehåll. Dessa begränsningar kan göra att andra språk eller verktyg som Python med bibliotek som BeautifulSoup eller Selenium är mer lämpade för webbskrapningsuppgifter på grund av deras förmåga att exekvera JavaScript och hantera komplexa webbinteraktioner.
Trots detta, för enkla uppgifter som involverar hämtning av rättfram HTML-innehåll eller när man arbetar inom begränsningarna av Office-program, förblir VBA ett praktiskt verktyg. Dess integration inom Office-sviten möjliggör direkt manipulation av dokument baserade på webbinnehåll, vilket erbjuder en unik fördel för specifika användningsområden.