ich müsste dringend Links aus einer html Quellcode auslesen.
Im Quellcode gibt es das Element "
Um Links aus einem HTML-Quellcode mit VBA auszulesen, kannst Du folgenden Code verwenden. Dieser Code öffnet eine Internetseite und extrahiert die Links aus dem spezifischen <div>
-Element.
Sub b()
Dim IEApp As Object, all As Object
Dim zeile As Long, spalte As Integer
zeile = 1
spalte = 1
Set IEApp = CreateObject("InternetExplorer.Application")
IEApp.Visible = False
IEApp.Navigate "http://www.wall-art.de/mustertapeten/" 'anpassen
Do: Loop Until IEApp.Busy = False
Do: Loop Until IEApp.Document.ReadyState = "complete"
For Each all In IEApp.Document.all
If all.classname Like "products-box gridView" Then
Tabelle1.Cells(zeile, spalte) = all.getElementsByTagName("a")(0).href
zeile = zeile + 1
End If
Next
IEApp.Quit
Set IEApp = Nothing
MsgBox "Fertig"
End Sub
Achte darauf, dass Du den spezifischen Link in der Navigate
-Methode anpasst. Der Code durchläuft alle Elemente und sucht nach dem Klassennamen products-box gridView
. Die gefundenen Links werden in eine Excel-Tabelle geschrieben.
Problem: Der Browser bleibt hängen.
Problem: Keine Links werden extrahiert.
<a>
-Tag innerhalb des <div>
-Elements vorhanden ist.Problem: Fehlermeldung beim Ausführen des Codes.
Falls Du keine VBA-Programmierung verwenden möchtest, kannst Du auch XML-HTTP-Anfragen nutzen. Hier ist ein Beispiel:
Sub HTML_Auslesen()
Dim http As Object
Dim html As Object
Dim zeile As Long
zeile = 1
Set http = CreateObject("MSXML2.XMLHTTP")
http.Open "GET", "http://www.wall-art.de/mustertapeten/", False
http.send
Set html = CreateObject("HTMLFile")
html.body.innerHTML = http.responseText
Dim links As Object
Set links = html.getElementsByTagName("a")
For Each link In links
If InStr(link.className, "product-img-link") > 0 Then
Tabelle1.Cells(zeile, 1) = link.href
zeile = zeile + 1
End If
Next
MsgBox "Fertig"
End Sub
Diese Methode verwendet MSXML2.XMLHTTP
, um den HTML-Quelltext herunterzuladen und die Links auszulesen.
Ein praktisches Beispiel zur Verwendung des Codes ist das Auslesen von Produktlinks von einer Webseite. Achte darauf, dass die Struktur der HTML-Daten konstant bleibt. Du kannst das Skript anpassen, um zusätzliche Attribute wie title
oder class
zu extrahieren.
Debug.Print
in Deinem Code, um den Fortschritt beim Auslesen des Quellcodes zu überprüfen.1. Wie kann ich den HTML-Quellcode anzeigen?
Du kannst den Quellcode mit Debug.Print IEApp.Document.body.innerHTML
in die Konsole ausgeben.
2. Ist dieser Code mit allen Excel-Versionen kompatibel?
Ja, die meisten Excel-Versionen ab 2010 unterstützen diese VBA-Methoden, solange die Entwicklertools aktiviert sind.
3. Kann ich andere HTML-Elemente auslesen?
Ja, Du kannst den Code anpassen, um andere Elemente wie <div>
, <span>
, etc. auszulesen. Achte darauf, die entsprechenden Tags und Attribute zu verwenden.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen