Auslesen einer Web-Seite mit VBA

Um den Inhalt einer Web-Seite auszulesen, benötigt man ein IE-Objekt, welches man etwa wie folgt verwendet:


Const url = "http://www.example.com"
Dim Response As String

' Zugriff aufs Web
Dim WebBrowser As Object
Set WebBrowser = CreateObject("InternetExplorer.Application")
WebBrowser.Navigate url

' Warten, bis die Seite geladen ist
Do While WebBrowser.busy
  DoEvents
Loop

Response = WebBrowser.Document.Body.InnerHtml

' Ressourcen freigeben
WebBrowser.Quit
Set WebBrowser = Nothing

In der Variablen “Response“ steht dann der HTML-Quelltext der Seite.

5 Antworten auf „Auslesen einer Web-Seite mit VBA“

  1. Hallo,
    danke für den Code-Schnipsel. Eine Frage noch, welche Verweise müssen noch angehakt werden, damit Dein Code funktioniert?
    Bei mir bricht er an der Stelle
    Set WebBrowser = CreateObject(„InternetExplorer.Application“)
    ab.
    Ich denke, da fehlt noch die Verweis Biliothek.

    Schon mal danke für die Antwort

  2. Angehakt werden müssen meiner Meinung nach
    „Microsoft Internet Controls“
    und eventuell
    „Microsoft HTML Object Library“

  3. Hi,

    vielen Dank für den code. Funktioniert prima.

    Ich nutze sie, um Hobby-Sportergebnisse abzurufen.
    Leider ist eine Seite wohl mit Absicht sehr langsam gemacht.

    Dieser Aufruf dauert da relaiv lange:
    WebBrowser.navigate url

    Häufig meldet Excel dann auch hier einen Fehler:
    Response = WebBrowser.document.Body.InnerHtml
    Ich kann dann aber auf weiter drücken, und es geht ohne Probleme weiter. Zeitgesteuerte Ausführung ist dann allerdings nicht möglich.

    Was macht genau navigate url? Kann man hier ggf. etwas ändern? Bzw nur z.B. eine ID aus dem Code laden?

    Danke für Eure Hilfe!

    Beispielseite:
    http://www.fussball.de/spiel/sc-sw-bakum-sg-holdorf-handorf-langenberg/-/spiel/022PA0RB6G000000VS54898EVU0FHBHU#!/

  4. Danke für den Hilfreichen Artikel.

    Ich habe mit etwas Anpassung mir nun ein VBA Code gebaut.
    Gibt es denn eine Möglichkeit das ganze ohne einen Browser im Hintergrund zu machen?

    Ggf. eine eigene Funktion innerhalb von VBA ?

    Danke

    Gruss Patrick

Schreiben Sie einen Kommentar zu Heinz B. Antworten abbrechen

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert