Microsoft Excel

Herbers Excel/VBA-Archiv

Hyperlinks auslesen mit Chrome

Betrifft: Hyperlinks auslesen mit Chrome von: Simon T.
Geschrieben am: 26.09.2020 00:24:24

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?

Betrifft: AW: bestimmt, aber ob auch das Forum hier passt?
von: JoWE
Geschrieben am: 26.09.2020 13:29:52



Betrifft: AW: bestimmt, aber ob auch das Forum hier passt?
von: Simon T.
Geschrieben am: 27.09.2020 08:56:58

Und wieso könnte es nicht passen?

Betrifft: AW: bestimmt, aber ob auch das Forum hier passt?
von: JoWE
Geschrieben am: 27.09.2020 11:39:44

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

Betrifft: AW: bestimmt, aber ob auch das Forum hier passt?
von: JoWE
Geschrieben am: 27.09.2020 11:51:02

- na ja ausser dass Du das Ergebnis nach Excel importieren willst.
Stell Deine Frage doch bitte noch mal auf offen.

Betrifft: AW: bestimmt, aber ob auch das Forum hier passt?
von: Simon T.
Geschrieben am: 27.09.2020 12:46:31

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.

Betrifft: AW: bestimmt, aber ob auch das Forum hier passt?
von: JoWE
Geschrieben am: 27.09.2020 13:07:31

offen stellen:
rechts neben der Passworteingabe befindet sich das Ankreuzfeld zur "Offenstellung"

Betrifft: AW: Hyperlinks auslesen mit Chrome
von: Zwenn
Geschrieben am: 27.09.2020 15:41:08

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

Betrifft: AW: Hyperlinks auslesen mit Chrome
von: Simon T.
Geschrieben am: 28.09.2020 01:09:23

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.

Betrifft: AW: Hyperlinks auslesen mit Chrome
von: Anton
Geschrieben am: 28.09.2020 10:36:14

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

Betrifft: AW: Hyperlinks auslesen mit Chrome
von: Simon T.
Geschrieben am: 28.09.2020 15:18:22

Danke, Anton!!!

Das ist die richtige Syntax, so funktioniert es und alle relevanten Links sind da.