Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Hyperlinks auslesen mit Chrome

Forumthread: Hyperlinks auslesen mit Chrome

Hyperlinks auslesen mit Chrome
26.09.2020 00:24:24
Simon
Bisher habe ich den Internet Explorer verwendet, um Daten der Seite sofascore.com in Excel zu importieren. Die Seite funktioniert dort nun aber nicht mehr und wird auch nicht weiter unterstützt.
Daher habe ich Selenium Basis 2.0.9.0 installiert und benutze nun den Chrome Browser für den Import.
Das Skript:

Sub test3()
Dim driver As New WebDriver
driver.Start "chrome"
driver.Window.Maximize
driver.Get "https://www.sofascore.com/team/football/bayern-munchen/2672"
driver.Wait 3000
body = driver.FindElementByClass("dhKVQJ").Attribute("href")
Cells(1, 1) = body
End Sub

Das klappt auch soweit, allerdings bekomme ich nur den ersten Hyperlink (https://www.sofascore.com/bayer-04-leverkusen-bayern-munchen/xdbsGdb). Es gibt aber mehrere, die ich alle brauche.
Kann mir jemand helfen?
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: bestimmt, aber ob auch das Forum hier passt?
26.09.2020 13:29:52
JoWE
AW: bestimmt, aber ob auch das Forum hier passt?
27.09.2020 08:56:58
Simon
Und wieso könnte es nicht passen?
AW: bestimmt, aber ob auch das Forum hier passt?
27.09.2020 11:39:44
JoWE
Hallo Simon,
in Deiner Frage erkenne ich keinen auch nur ansatzweisen Bezug zu Excel bzw. zu Excel-VBA.
Da müsstest Du schon genauere Informationen zur Herstellung eines Bezuges liefern.
Gruß
Jochen
Anzeige
AW: bestimmt, aber ob auch das Forum hier passt?
27.09.2020 11:51:02
JoWE
- na ja ausser dass Du das Ergebnis nach Excel importieren willst.
Stell Deine Frage doch bitte noch mal auf offen.
AW: bestimmt, aber ob auch das Forum hier passt?
27.09.2020 12:46:31
Simon
Wie kann ich die Frage denn offen stellen?
Weitere Informationen zu meiner Frage:
Ich benutze Excel der Version Microsoft Office 2019 Professional Plus.
Dort habe ich das oben aufgeführte Makro im VBA-Editor geschrieben und laufen lassen, damit die Hyperlinks über den Chrome Browser in ein Excel-Tabellenblatt importiert werden. Zur Benutzung des Chrome Browsers habe ich "Selenium Basis 2.0.9.0" installiert, der im VBA-Editor unter "Extras" und dann "Verweise" aktiviert werden musste.
Das Makro funktioniert wie gesagt.
Anzeige
AW: bestimmt, aber ob auch das Forum hier passt?
27.09.2020 13:07:31
JoWE
offen stellen:
rechts neben der Passworteingabe befindet sich das Ankreuzfeld zur "Offenstellung"
AW: Hyperlinks auslesen mit Chrome
27.09.2020 15:41:08
Zwenn
Hallo Simon,
soweit ich es recherchiert habe, holst Du mit FindElementByClass() nur das erste Element mit dem entsprechenden Klassennamen. Was Du willst, ist aber eine Liste aller Elemente mit dem gleichen Klassennamen. Das funktioniert mit FindElements() und irgendetwas mit By. in den Klammern.
Folgender Link verweist zwar auf eine Erklärung für Java, das sollte aber relativ egal sein. Selbst habe ich zwar viel Erfahrung mit WebScraping, habe aber noch nie mit Selenium gearbeitet.
https://www.guru99.com/find-element-selenium.html
Viele Grüße,
Zwenn
Anzeige
AW: Hyperlinks auslesen mit Chrome
28.09.2020 01:09:23
Simon
Hallo Zwenn, Danke für die Antwort.
Ich habe nun schon verschiedene Kombis probiert, finde aber nicht die richtige Syntax für FindElements() mit By. in den Klammern. Egal wie bekomme ich dann immer Laufzeitfehler.
AW: Hyperlinks auslesen mit Chrome
28.09.2020 10:36:14
Anton
Hallo Simon,
probier's hiermit:

Sub b()
 'Verweis auf Selenium Type Library setzen
  Dim driver As New ChromeDriver, link As Object    
  With driver
   'Pfad zum Chrome musste ich beim 1.Start anpassen
   '.SetBinary "C:\Program Files\Google\Chrome\Application\chrome.exe"
    .Start
    .Get "https://www.sofascore.com/team/football/bayern-munchen/2672"
    .Wait 3000
    For Each link In .FindElementsByClass("dhKVQJ")  
      Debug.Print link.Attribute("href")
    Next
  End With  
End Sub  

mfg Anton
Anzeige
AW: Hyperlinks auslesen mit Chrome
28.09.2020 15:18:22
Simon
Danke, Anton!!!
Das ist die richtige Syntax, so funktioniert es und alle relevanten Links sind da.
;
Anzeige
Anzeige

Infobox / Tutorial

Hyperlinks auslesen mit Chrome in Excel


Schritt-für-Schritt-Anleitung

  1. Selenium installieren: Stelle sicher, dass Du Selenium Basic 2.0.9.0 installiert hast. Dies ermöglicht Dir, den Chrome-Browser in Excel-VBA zu verwenden. Du kannst die Installation von der offiziellen Webseite herunterladen.

  2. Verweis setzen: Öffne den VBA-Editor in Microsoft Excel (Office 2019). Gehe zu Extras > Verweise und aktiviere die Selenium Type Library.

  3. Makro erstellen: Erstelle ein neues Modul und füge den folgenden Code ein:

    Sub HyperlinksAuslesen()
       Dim driver As New ChromeDriver
       Dim link As Object
    
       With driver
           .Start
           .Get "https://www.sofascore.com/team/football/bayern-munchen/2672"
           .Wait 3000
    
           For Each link In .FindElementsByClass("dhKVQJ") 
               Debug.Print link.Attribute("href")
           Next
       End With
    
       driver.Quit
    End Sub
  4. Ausführen: Führe das Makro aus, um alle Hyperlinks von der angegebenen Webseite auszulesen. Die Links werden im Direktfenster von VBA angezeigt.


Häufige Fehler und Lösungen

  • Laufzeitfehler: Wenn Du einen Laufzeitfehler erhältst, überprüfe, ob der Klassenname korrekt ist. In diesem Fall ist "dhKVQJ" der relevante Klassenname.

  • Keine Links gefunden: Stelle sicher, dass Du die richtige URL verwendest und dass die Webseite keine zusätzlichen Sicherheitsmaßnahmen hat, die das Scraping verhindern könnten.


Alternative Methoden

  • Excel Extensions für Chrome: Es gibt verschiedene Excel-Extensions für Chrome, die das Datenimportieren erleichtern können. Diese Extensions können oft ohne Programmierkenntnisse verwendet werden.

  • Web Scraping mit Python: Wenn Du mit Excel VBA Schwierigkeiten hast, könnte die Verwendung von Python mit Bibliotheken wie BeautifulSoup und Selenium eine leistungsfähige Alternative sein.


Praktische Beispiele

Hier ist ein Beispiel, wie Du mehrere Hyperlinks auf einer Webseite auslesen kannst:

Sub BeispielHyperlinks()
    Dim driver As New ChromeDriver
    Dim link As Object

    With driver
        .Start
        .Get "https://www.sofascore.com/team/football/bayern-munchen/2672"
        .Wait 3000

        For Each link In .FindElementsByClass("dhKVQJ")
            Cells(1, 1).Value = link.Attribute("href")
            Cells(1, 1).Offset(1, 0).Value = link.Attribute("href") ' In die nächste Zeile
        Next
    End With

    driver.Quit
End Sub

In diesem Beispiel werden die Links in die erste Spalte des Excel-Arbeitsblatts geschrieben.


Tipps für Profis

  • Debug.Print nutzen: Verwende Debug.Print, um die Links während der Entwicklung im Direktfenster anzuzeigen. So kannst Du sicherstellen, dass alles korrekt funktioniert, bevor Du die Links in Excel einfügst.

  • Fehlerbehandlung integrieren: Füge Fehlerbehandlungsroutinen in Dein Makro ein, um unerwartete Probleme elegant zu handhaben.

  • Verwende chrome.application in VBA: Wenn Du spezifische Aktionen mit Excel und Chrome durchführen möchtest, kannst Du die chrome.application-Objekte in VBA verwenden, um die Interaktion zu optimieren.


FAQ: Häufige Fragen

1. Was ist Selenium und warum sollte ich es verwenden?
Selenium ist ein Tool zur Automatisierung von Webbrowsern. Es ermöglicht Dir, Daten aus Webseiten zu extrahieren und in Excel zu importieren, was besonders nützlich ist, wenn Webseiten nicht für den direkten Download konzipiert sind.

2. Wie installiere ich Selenium Basic?
Lade die Selenium Basic-Bibliothek von der offiziellen Webseite herunter und folge den Installationsanweisungen. Achte darauf, die Type Library in Excel zu aktivieren.

3. Funktioniert das auch mit anderen Excel-Versionen?
Ja, das Beispiel funktioniert in der Regel auch mit anderen Microsoft Excel-Versionen, solange Du sicherstellst, dass die Selenium-Bibliothek korrekt installiert und integriert ist.

4. Was mache ich, wenn die Webseite geblockt wird?
Wenn Du beim Zugriff auf die Webseite auf Probleme stößt, könnte es an Sicherheitseinstellungen oder Captchas liegen. In solchen Fällen kann es hilfreich sein, Proxys oder Headless-Browser zu verwenden.

5. Wie kann ich die Links in eine Excel-Tabelle einfügen?
Du kannst die Cells-Methode verwenden, um die Links in spezifische Zellen Deiner Excel-Tabelle zu schreiben, wie im praktischen Beispiel gezeigt.

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