Mit VBA Links in Webseiten automatisiert anklicken
Schritt-für-Schritt-Anleitung
-
Öffne Excel und drücke ALT + F11
, um den VBA-Editor zu starten.
-
Füge ein neues Modul hinzu:
- Rechtsklick auf „VBAProject (deine Arbeitsmappe)“.
- Wähle „Einfügen“ und dann „Modul“.
-
Kopiere den folgenden Code in das Modul:
Sub AlleSpieleOeffnen()
Dim browser As Object
Dim knotenAst As Object
Dim knoten As Object
Dim url As String
url = "http://www.scoresway.com/?sport=soccer&page=matches&date=2017-12-04"
Set browser = CreateObject("InternetExplorer.Application")
browser.Visible = True
browser.Navigate url
Do Until browser.ReadyState = 4: DoEvents: Loop
Set knotenAst = browser.document.getElementsByClassName("group-head clickable ")
If Not knotenAst Is Nothing Then
For Each knoten In knotenAst
knoten.getElementsByTagName("th")(0).Click
Do Until browser.ReadyState = 4: DoEvents: Loop
Next knoten
End If
Set browser = Nothing
Set knotenAst = Nothing
Set knoten = Nothing
End Sub
-
Führe das Makro aus, um die Links auf der Webseite zu öffnen.
Häufige Fehler und Lösungen
Alternative Methoden
-
Verwendung von Selenium: Eine weitere Möglichkeit, um automatisiert Links zu öffnen, ist die Verwendung von Selenium in Kombination mit Excel VBA. Diese Methode kann flexibler sein und bietet mehr Kontrolle über den Browser.
-
Web Scraping mit Python: Wenn Du mehr über die Automatisierung lernen möchtest, kann Python mit Bibliotheken wie BeautifulSoup
und Selenium
eine hervorragende Wahl sein.
Praktische Beispiele
Hier ist ein Beispiel, wie Du den Code anpassen kannst, um ein Datum dynamisch in der URL zu verändern:
Sub SpieleOeffnenMitDatum()
Dim browser As Object
Dim knotenAst As Object
Dim knoten As Object
Dim url As String
Dim datum As String
datum = InputBox("Gib das Datum ein (YYYY-MM-DD):")
url = "http://www.scoresway.com/?sport=soccer&page=matches&date=" & datum
Set browser = CreateObject("InternetExplorer.Application")
browser.Visible = True
browser.Navigate url
Do Until browser.ReadyState = 4: DoEvents: Loop
' Rest des Codes bleibt gleich
End Sub
Tipps für Profis
-
Verzögerung anpassen: Experimentiere mit verschiedenen Zeitverzögerungen zwischen den Klicks, um sicherzustellen, dass die Webseite nicht überlastet wird. Eine Pause von 2 Sekunden hat sich als effektiv erwiesen.
-
Fehlerprotokollierung: Füge eine Fehlerbehandlung hinzu, um Fehler während der Ausführung des Makros zu protokollieren. Dies kann helfen, die Ursachen für das Scheitern der Links zu identifizieren.
FAQ: Häufige Fragen
1. Was ist AJAX?
AJAX steht für Asynchronous JavaScript and XML und wird verwendet, um Daten im Hintergrund zu laden, ohne die Seite neu zu laden. Bei Deinem Vorhaben wird dies durch das Klicken auf bestimmte Links ausgelöst.
2. Kann ich die Links auch mit Chrome oder Firefox öffnen?
Ja, es ist möglich, VBA mit Selenium zu verwenden, um Links in anderen Browsern zu öffnen. Die oben genannten Alternativen können Dir dabei helfen.
3. Wie gehe ich mit Zugriffsbeschränkungen um?
Es ist wichtig, die Anzahl der Anfragen zu begrenzen, um von Webseiten nicht blockiert zu werden. Eine Einhaltung von Zeitverzögerungen ist entscheidend, um technische Hürden zu umgehen.