Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Daten aus Webseiten auslesen

Daten aus Webseiten auslesen
15.12.2019 15:00:49
Andi
Hallo zusammen,
ich hoffe es kann mir jemand weiterhelfen. Ich möchte Daten aus Webseiten auslesen und ins Excel übertragen. Dafür habe ich ein VBA Makro geschrieben, welches ursprünglich mit dem Internet Explorer 11 funktionierte. Mit Microsoft Edge funktioniert es jetzt nicht mehr. Deshalb habe ich versucht mir mit Selenium oder XMSXML2.XMLHTTP weiterzuhelfen, aber beides bereitet Probleme.
Unter folgendem Link habe ich die Problematik beschrieben.
https://www.herber.de/forum/cgi-bin/callthread.pl?index=1727724#1727901
Powershell habe ich mir nun auch angeschaut, aber es arbeitet unter Excel sehr langsam, wie meine ersten Versuche gezeigt haben. Zudem würde es einige Zeit dauern, bis ich mich soweit eingearbeitet habe, dass ich alles wie gewünscht umsetzen kann. Deshalb wäre eine Lösung in Verbindung mit VBA besser, damit ich nicht das komplette Programm neu schreiben muss.
Grüße
Andi
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten aus Webseiten auslesen
16.12.2019 16:33:28
ChrisL
Hi Andi
Ich denke der gesuchte Wert (welchen weiss ich leider nicht) lässt sich auch ohne DOM parsen.
Jedenfalls der folgende Code schneidet dir die gesuchte Division aus.
https://www.herber.de/bbs/user/133814.txt
Die Such-ID kannst du scheinbar auch direkt im URL angeben (1x Suchen gespart).
cu
Chris
Anzeige
AW: Daten aus Webseiten auslesen
16.12.2019 22:23:36
Andi
Hallo Chris,
vielen Dank für die Info. Ich versuche es mal so umzusetzen.
Grüße
Andi
AW: Daten aus Webseiten auslesen
17.12.2019 09:51:28
ChrisL
Hi Andi
Sonst lade mal einen Screen-Shot (Ausschnitt) mit dem Wert markiert den du benötigst.
cu
Chris
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Daten aus Webseiten auslesen mit Excel


Schritt-für-Schritt-Anleitung

  1. VBA-Editor öffnen: Drücke Alt + F11, um den VBA-Editor in Excel zu öffnen.

  2. Neues Modul erstellen: Klicke mit der rechten Maustaste auf „VBAProject (DeineArbeitsmappe)” und wähle „Einfügen” > „Modul”.

  3. Code einfügen: Füge den folgenden Code ein, um Daten aus einer Webseite auszulesen:

    Sub DatenAusWebseiteAuslesen()
       Dim http As Object
       Set http = CreateObject("MSXML2.XMLHTTP")
    
       http.Open "GET", "URL_DER_WEBSEITE", False
       http.send
    
       Dim html As Object
       Set html = CreateObject("HTMLFile")
       html.body.innerHTML = http.responseText
    
       ' Hier den gewünschten Wert extrahieren
       Dim wert As String
       wert = html.getElementsByClassName("DEINE_KLASSE")(0).innerText
    
       ' Wert in Excel einfügen
       Range("A1").Value = wert
    End Sub
  4. URL und Klasse anpassen: Ersetze URL_DER_WEBSEITE und DEINE_KLASSE mit den spezifischen Informationen der Webseite, von der Du Daten auslesen möchtest.

  5. Makro ausführen: Schließe den VBA-Editor und führe das Makro über Alt + F8 aus.


Häufige Fehler und Lösungen

  • Fehler: "Zugriff verweigert"
    Lösung: Überprüfe, ob die Webseite CORS (Cross-Origin Resource Sharing) aktiviert hat. Manchmal ist der Zugriff auf die Daten durch Sicherheitsrichtlinien eingeschränkt.

  • Fehler: "Objekt erforderlich"
    Lösung: Stelle sicher, dass das Microsoft HTML Object Library in den Verweisen aktiviert ist. Gehe zu „Extras” > „Verweise” und aktiviere es.

  • Problem mit Microsoft Edge
    Wenn Du den excel vba edge browser nutzen möchtest, kannst Du auf Selenium zurückgreifen. Hier ist ein Beispiel, wie Du Selenium in VBA integrieren kannst:

    ' Du benötigst Selenium-Bibliotheken
    Dim driver As New WebDriver
    driver.Start "edge", "URL_DER_WEBSEITE"
    driver.Get "/"
    Dim wert As String
    wert = driver.FindElementByClass("DEINE_KLASSE").Text
    Range("A1").Value = wert
    driver.Quit

Alternative Methoden

  • PowerShell: Du kannst auch powershell webseite auslesen verwenden. Hier ein Beispiel:

    $url = "URL_DER_WEBSEITE"
    $response = Invoke-WebRequest -Uri $url
    $response.Content
  • Daten abrufen über Excel: Nutze die Funktion „Daten abrufen” in Excel, um Daten direkt von einer Webseite zu importieren. Gehe zu „Daten” > „Daten abrufen” > „Aus dem Web”.


Praktische Beispiele

  • Beispiel 1: Um den Preis eines Produkts von einer E-Commerce-Seite auszulesen, könntest Du den folgenden VBA-Code verwenden:

    Sub PreisAuslesen()
       Dim http As Object
       Set http = CreateObject("MSXML2.XMLHTTP")
    
       http.Open "GET", "https://www.example.com/product", False
       http.send
    
       Dim html As Object
       Set html = CreateObject("HTMLFile")
       html.body.innerHTML = http.responseText
    
       Dim preis As String
       preis = html.getElementsByClassName("preis-klasse")(0).innerText
       Range("B1").Value = preis
    End Sub
  • Beispiel 2: Um Daten aus einer Tabelle auszulesen, könntest Du die Tabelle direkt ansprechen:

    Dim tabelle As Object
    Set tabelle = html.getElementsByTagName("table")(0)
    Range("A1").Value = tabelle.Rows(1).Cells(1).innerText

Tipps für Profis

  • Verwende Option Explicit: Das hilft, Fehler durch nicht deklarierte Variablen zu vermeiden.
  • Fehlerbehandlung einfügen: Nutze On Error Resume Next, um Fehler im Code zu handhaben.
  • Regelmäßig testen: Teste den Code nach jeder Änderung, um Probleme frühzeitig zu erkennen.

FAQ: Häufige Fragen

1. Wie kann ich mit Excel Daten aus einer Webseite auslesen?
Du kannst dies mithilfe von VBA oder Power Query tun. VBA ermöglicht dir, spezifische Daten zu extrahieren, während Power Query eine benutzerfreundliche Schnittstelle bietet.

2. Funktioniert das Auslesen von Webseiten in allen Excel-Versionen?
Die meisten Methoden sind in Excel 2010 und höher verfügbar. Stelle sicher, dass Du die richtigen Bibliotheken für VBA eingebunden hast, insbesondere wenn Du Microsoft Edge oder Selenium verwendest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige