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

Webseite Zahl auslesen

Webseite Zahl auslesen
14.05.2019 18:45:28
Bernd
Hallo Forum (hallo Zwenn),
ich würde gerne Zahlen aus einer Tabelle per vba auslesen, scheitere aber an dem Zugriff auf die Zahl, weil die Seite (für mich) zu komplex aufgebaut ist.
Hier die Webseite:
http://www.wsj.com/mdc/public/page/2_3021-tradingdiary2.html
Ich würde gerne z.B. die Zahl rechts von "Issues Traded" (bei NYSE sowei bei Nasdaq) auslesen unter der Spalte mit der Überschrift "Latest Close". Im unten stehenden Quelltext ist diese Zahl zum Beispiel 3,037.
Dann würde ich gerne in dieser Spalte die weiteren Zahlen (immer die erste Zahl!)auslesen von "Advances", "Declines" usw.
Der Quelltext an dieser Stelle lautet wie folgt:
NYSE
Latest close
Previous close
Week ago


Issues traded
3,037
3,022
3,025


Advances
491
1,911
1,220


Declines
2,490
1,013
1,680

Mit dem Befehl
Set knotenStamm = WebBrowser.document.getElementsByClassName("XXX")
komme ich hier nicht weiter.
Ich brauche nur Hilfe bei dem Teil Zugriff an der richtigen Stelle auf die Webseite.
Alles andere sollte ich dann (hoffentlich) alleine hinbekommen.
Hoffe, dass wir jemand mit ein paar Zeilen Vba weiterhelfen kann
Besten Dank vorab
Bernd

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

Betreff
Datum
Anwender
Anzeige
AW: Webseite Zahl auslesen
14.05.2019 19:07:20
Bernd
Nachtrag:
Mit dem VBA code
Set knotenStamm = WebBrowser.document.getElementsByClassName("colhead")(0)
Response = knotenStamm.innertext
bekomme ich immer hin unter Response schon die Abkürzung "NYSE". Jetzt muss ich mich nur noch von dieser Stelle im HTML-code per vba durch die Tabelle hangeln und dazu fehlt mir das Wissen...
BG
Bernd
AW: Webseite Zahl auslesen
14.05.2019 22:56:27
Matthias
Moin!
Komme grad nicht zum ausführlichen Programmieren. Deshalb nur mal auf die schnelle ein paar Tipps.
Nutze getElementsByid und dort de ID table. Mit der richtigen Tabelle kannst du dich dann durhhangeln. Daran dann wieder getslementbyid mit tr für die Zeilen und td für die Zelle
Die Numerierung ist meist immer 0 basiert. Für dei 1. Tabelle , 1 Zeile und 1 Zelle seht das dann so aus.
.document.getElementById("table")(0).getElementsByTagName("tr")(0).getElementsByTagName("td")(0).innertext

Ggf. mal probieren, welche Tabelle es ist.
Hier ist mal ein ählmiches Beispiel.
http://automatetheweb.net/vba-getelementsbytagname-method/
Vllt. hilft das ja schon
VG
Anzeige
AW: Webseite Zahl auslesen
15.05.2019 16:06:59
Bernd
Hallo Matthias,
ich habe mir das heute mal angeschaut. Leider bekomme ich mit dem Befehl
Set knotenStamm = WebBrowser.document.getElementById("table")(2).getElementsByTagName("tr")(1).getElementsByTagName("td")(1).innertext
immer Fehlermeldungen Typ13 unverträglich. Die Zahlen habe ich auch schon variiert, aber ich bin mir nicht sicher ob ich richtig zähle - z.B. die richtige Zahl für die Tabelle habe usw.
Vielleicht kannst du mir doch noch etwas bitte auf die Sprünge helfen.
BG
Bernd
AW: Webseite Zahl auslesen
15.05.2019 17:30:46
Zwenn
Hallo Bernd,
vermeide diese Ketten aus GetMethoden. Wenn eine davon nicht matcht, bekommst Du einen Laufzeitfehler, weil das entsprechende Objekt nicht gebildet werden konnte.
Da Du nur Werte zu zwei Angaben haben möchtest, kannst Du das folgendermaßen machen. Das ist zwar sehr stumpf, weil ich unten quasi das gleiche für jedes Werte-Tupel mache, aber für eine elegantere Lösung fehlt mir grade die Zeit. Bin auf dem Sprung.

Sub wsjWerteAuslesen()
Dim browser As Object
Dim url As String
Dim knotenWurzel As Object
Dim knotenStamm As Object
Dim knotenAst As Object
Dim knotenZweig As Object
Dim ergebnis As String
url = "http://www.wsj.com/mdc/public/page/2_3021-tradingdiary2.html"
'Internet Explorer initialisieren, Sichtbarkeit festlegen,
'URL aufrufen und warten bis Seite vollständig geladen wurde
Set browser = CreateObject("internetexplorer.application")
browser.Visible = False
browser.Navigate url
Do Until browser.ReadyState = 4: DoEvents: Loop
'Richtige Tabelle holen
Set knotenWurzel = browser.document.getElementsByClassName("mdcTable")(0)
If Not knotenWurzel Is Nothing Then
'Wenn Tabelle gefunden, NodeList aus tr-Tags bilden
Set knotenStamm = knotenWurzel.getElementsByTagName("tr")
If Not knotenStamm Is Nothing Then
'Wenn tr-Tags vorhanden, direkt aus den richtigen die td-Tags holen
'Ich habe die einfach abgezählt, wobei 0 = das erste tr-Tag ist
'2tes tr-Tag enthält Werte für NYSE -> Issues traded
Set knotenAst = knotenStamm(1).getElementsByTagName("td")
If Not knotenAst Is Nothing Then
'Wenn td-Tags vorhanden Inhalte übernehmen
For Each knotenZweig In knotenAst
ergebnis = ergebnis & knotenZweig.innertext & Chr(13)
Next knotenZweig
End If
'Freizeile für Demo-Ergebnis zwischen den Wertzugehörigkeiten
ergebnis = ergebnis & Chr(13)
'20tes tr-Tag enthält Werte für Nasdaq -> Issues traded
Set knotenAst = knotenStamm(19).getElementsByTagName("td")
If Not knotenAst Is Nothing Then
'Wenn td-Tags vorhanden Inhalte übernehmen
For Each knotenZweig In knotenAst
ergebnis = ergebnis & knotenZweig.innertext & Chr(13)
Next knotenZweig
End If
End If
End If
MsgBox ergebnis
'Aufräumen
browser.Quit
End Sub

Viele Grüße,
Zwenn
Anzeige
AW: Webseite Zahl auslesen
15.05.2019 22:45:05
Bernd
Hallo Zwenn,
vielen Dank für deine Hilfe. Ich werde jetzt am Wochenende mich tiefer mit deinem Makro beschäftigen.
Wenn ich noch fragen habe, dann melde ich mich im Forum.
Bernd

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige