Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1904to1908
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

selenium / vba

selenium / vba
10.11.2022 14:52:37
Fred
Hallo Yal,
vorweg entschuldige bitte, das ich mich erst 1 Tag später melde. Meine demenzkranke Mutter ......
Ja, den Tipp mit Selenium habe ich bereits vor knapp 1 Jahr von ralf_b bekommen und nun habe ich auch entsprechend installiert.
Das Tutorial als Muster genutzt klappt bisher eingeschränkt.
Das Tutorial habe ich bisher darin genutzt
1. öffnen der Seite https://www.xscores.com/soccer/germany/bundesliga/results
2. Zustimmung für pers. Daten ...
3. Cookies akzeptieren
https://www.herber.de/bbs/user/156122.xlsb
Die "Wrapper-Klassen" machen mir Kummer. Die Seite (bzw. die mich interessierenden Daten) ist ja nicht wie im Tutorial klar mit einer Tabelle (tr, td, th) aufgebaut sondern mehr mit diesen "Wrapper".
Gruss
Fred

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

Betreff
Datum
Anwender
Anzeige
AW: selenium / vba
10.11.2022 16:15:07
Fred
... oder hat wer anderes eine Idee, wie Website Daten nach Excel zu bekommen sind?
Ich bin nun mal zu meiner "Lieblingsseite" geswitcht https://www.totalcorner.com/league/view/16
Diese Seite ist allerdings locker mit >Daten / Aus dem Web Diese Seite scheint mir aber mit einer "klassischen Tabelle" aufgebaut zu sein
Ich möchte mit Selenium weiter auf die Detail-Seiten der einzelnen Spiele und mir das HalbeitErgebnis entsprechend eintragen
https://www.herber.de/bbs/user/156126.xlsb
Wird anscheinend noch viel "Versuch & Irrtum" geben
Gruss
Fred
Anzeige
AW: selenium / vba
10.11.2022 16:16:58
Fred
.. jemand eine Idee? (hatte nicht auf offen gestellt :-)
AW: selenium / vba
10.11.2022 18:24:11
Yal
Hallo Fred,
es ist tatsächlich so, dass das Scraping von Webseite ein gesundes Wissen über html erfordert. Aber nicht erschrecken lassen, man kommt Schritt für Schritt rein.
Tabelle sind z.B. immer zuerst Zeile, tr für table row, dann Spalte in 2 Geschmacksrichtungen: th für table header und td für table data.
Du kannst aber die gesamte html-Tabelle in einem VBA- oder gar Excel-Tabelle übergeben. (hast Du die weitere Videos bei WiseOwl angeschaut?)
Dass Du auf eine Webseite rechtsklicken kannst/musst, und "Untersuchen" auswählen, weisst Du schon. Aud einem Element in den Code kannst Du auch rechtklicken und Information wie XPath kopieren. Damit kannst Du einzelne Element einer Tabelle identifizieren.
Mit folgendem wird -auf eine bestimmte Webseite- einige Werte gesetzt (Region, Monate, Kilometer) und in einer Tabelle auf gezielte Element in Zeile 1 / Spalte 2 geklickt, dann Zeile 5 / Spalte3, dann 10 /3. "id" sind immer eindeutig in einer Webseite. Darauf kannst Du/musst Du aufbauen.

    With myChromeDriver
.FindElementById("ref_market").SendKeys pMarket 'Region
.FindElementById("fcc_month").SendKeys 12 'Monate
.FindElementById("fcc_mileage").ClickAndHold
.FindElementById("fcc_mileage").SendKeys Keys.Home
.FindElementById("fcc_mileage").SendKeys "20000" 'Kilometer
.FindElementByXPath("//*[@id=""settings""]/tbody/tr[1]/td[2]/input").Click 'Standard-Modul ist UCC
.FindElementByXPath("//*[@id=""settings""]/tbody/tr[5]/td[3]/input").Click 'inkl. VAT
.FindElementByXPath("//*[@id=""settings""]/tbody/tr[10]/td[2]/input").Click 'Default vehicle type: Car (nur Car)
.FindElementById("bu_save").Click
End With
Diese XPath sind Texten. Die 1 und 2, 5 und 3, 10 und 2 kannst Du in Schleifen überschreiben, und so alle td einer Zeile und alle tr einer Tabelle ansprechen.
Aber in ein solcher Fall ist es leichter AsTable zu verwenden:
myArray = .FindElementByXPath("//*[@id=""settings""]/tbody").AsTable.Data
oder ähnlichen:

    Data_Sub = .FindElementByClass("main").FindElementByTag("tbody").AsTable.Data
For Zeile = 2 To UBound(Data_Sub, 1)
For Spalte = 2 To UBound(Data_Sub, 2)
AusgabeDatei.WriteLine Trim(Data_Sub(Zeile, 1)) & ";" & Trim(Data_Sub(1, Spalte)) & ";" & Data_Sub(Zeile, Spalte)
Next
Next
Die Möglichkeit sind unendlich. Es muss leider sehr viel über Try&Error laufen. Aber Schritt für Schritt kommt man ran.
VG
Yal
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge