Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1924to1928
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

VBA: URL von Webseite in Excel schreiben

VBA: URL von Webseite in Excel schreiben
31.03.2023 12:33:05
Peter

Hallo,
ich möchte mittels VBA von dieser Eurex Webseite

https://www.eurex.com/ex-en/data/statistics/trading-statistics/122!search?state=H4sIAAAAAAAAADWOsQoCMRAFf0W2TqFtarGyCCj24fKigTXB3Q1yHPfvBiHdG2aKt1GKhou0N_namd2f721SjgtMyW_72EXUrjCDTP0qpgES4hPkT0dHpS7cE27FoDNqldeQMvkcWeHo0yEreSJHAu1sj4LvjLWJDafnceOQoAvtP8CH51ukAAAA&hitsPerPage=25

- ja ich bin Finanzheini ;-) -

die URLs, welche sich hinter den 16 obersten Download-Knöpfen verbergen, also für den 30.März ist das

https://www.eurex.com/resource/blob/3490888/032f381a1815bbb4b05ea66391b10e97/data/dailystat_20230330.xls

für den 29.März:
https://www.eurex.com/resource/blob/3489688/91224427b8bcde7c1af82883c5c9e47b/data/dailystat_20230329.xls

, untereinander in das Tabellenblatt einer Excel-Datei schreiben.

in Kurzform: Es sollen immer die 16 obersten Download-URLs ausgelesen werden.

Danach verarbeite ich das ganze weiter in einer automatisierten Datenabfrage.
(Hintergrund: das ganze URL-Auslesezinober ist erforderlich weil die Eurex bei jedem Datum in der URL nicht nur das Datum ändert - wie das andere Datenanbieter machen - sondern vor dem Datum eine für jeden Tag verschiedene, elendig lange Zahlen&Buchenstaben-Kombination - total nervig).

Vielen Dank für eure Hilfe.
VG, Peter

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: URL von Webseite in Excel schreiben
31.03.2023 15:21:51
Zwenn
Hallo Peter,

die Tabelle, in die Du schreiben willst und wohin darin, musst Du ggf. noch anpassen:

Sub GetEurexURLs()
Const url As String = "https://www.eurex.com/ex-en/data/statistics/trading-statistics/122!search?state=H4sIAAAAAAAAADWOsQoCMRAFf0W2TqFtarGyCCj24fKigTXB3Q1yHPfvBiHdG2aKt1GKhou0N_namd2f721SjgtMyW_72EXUrjCDTP0qpgES4hPkT0dHpS7cE27FoDNqldeQMvkcWeHo0yEreSJHAu1sj4LvjLWJDafnceOQoAvtP8CH51ukAAAA&hitsPerPage=25"
  Dim doc As Object
  Dim currRow As Long
  Dim nodeAllContainers As Object
  Dim nodeOneContainer As Object
  
  currRow = 2
  Set doc = CreateObject("htmlFile")
  With CreateObject("MSXML2.XMLHTTP.6.0")
    .Open "GET", url, False
    .send
    If .Status = 200 Then
      doc.body.innerHTML = .responseText
      Set nodeAllContainers = doc.getElementsByClassName("dbx-search-result")
      For Each nodeOneContainer In nodeAllContainers
        ActiveSheet.Cells(currRow, 1) = "https://www.eurex.com" & Replace(nodeOneContainer.getElementsByTagName("a")(0).href, "about:", "")
        currRow = currRow + 1
      Next nodeOneContainer
    Else
      MsgBox "Seite nicht geladen. HTTP Status: " & .Status
    End If
  End With
End Sub
Viele Grüße,

Zwenn


Anzeige
AW: VBA: URL von Webseite in Excel schreiben
31.03.2023 16:12:56
Peter
Servus Genie-Zwenn,
absoluter Wahnsinn - ich bin sprachlos: es funktioniert wie geschmiert! ;-) (den genauen Ausgabeort für die URLs modifiziere ich selbst noch)
Wahnsinn was mit VBA alles möglich ist - das erspart mir eine Menge täglicher manueller Aufdatierungsarbeit (ich programmiere ab und an auch ein wenig herum, aber das ist eine andere Liga).
Ganz herzlichen Dank für deine super und schnelle Hilfe!
VG, Peter


AW: VBA: URL von Webseite in Excel schreiben
31.03.2023 16:56:00
Zwenn
Freut mich, dass Du damit Dein Ziel erreichst :-)

Es ist allerdings auch kein Hexenwerk. Die Seite leistet nicht viel "Gegenwehr". Ansonsten muss man neben VBA auch das Analysieren von HTML Quellcode können. Die Methoden getElementsBy...() gehören zum DOM (Document Object Model). Damit kann direkt auf die benötigten HTML Elemente zugegriffen werden, weshalb das htmlFile Objekt benötigt wird. Der Zugriff selbst erfolgt dann über xhr (XML HTTP Request), der im Makro mit der With Zeile eingeleitet wird.

Die Dokumentation dazu bezieht sich immer auf JavaScript, was aber am Ende egal ist:
https://www.w3schools.com/js/js_htmldom.asp

Den letzten Parameter der URL &hitsPerPage=25 kannst Du übrigens auch auf 50 Setzen, falls Du 50 URLs benötigst. Klickst Du auf der Webpage unten auf den Link zu Seite 2 der Suchtreffer, erscheint in der URL der zusätzliche Parameter &pageNum=1. Da die erste Seite sich auch mit &pageNum=0 aufrufen lässt, könnten in einer Schleife alle Seiten durchlaufen werden, um alle URLs auszulesen.


Anzeige
AW: VBA: URL von Webseite in Excel schreiben
03.04.2023 09:24:08
Peter
Danke für die Erklärungen. Es beruhigt mich etwas dass es mehr als reines VBA-Wissen für den Code brauchte. Den hit-per-page-Paramater habe ich spasseshalber auch ausprobiert, weil es läuft alles sehr flüssig und schnell. Dass man sogar das Excel-VBA in den Internetseiten blättern lassen könnte, ist nochmal eindrücklicher.

Brauche jedoch nur die letzten 25 URLs weil ich diese ohnehin täglich mittels Windows Taskmanager abrufe und meine eigene Datenbank füttern lasse.


AW: VBA: URL von Webseite in Excel schreiben
04.04.2023 12:13:32
Zwenn
Jou, ich hatte das mit dem "Durchblättern" nur mit erklärt, weil es manchmal notwendig ist und dann ist es gut, wenn man weiß, dass es grundsätzlich möglich ist. Aber wie gesagt, es gibt auch Seiten, die legen der Automatisierung richtig Steine in den Weg.

Anzeige

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige