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

per VBA ein Feld aus einer Internetseite auslesen

per VBA ein Feld aus einer Internetseite auslesen
28.06.2019 12:53:41
kocius
Hallo Zusammen,
ich versuche gerade aus Internetseite ein Feld abzufragen. Habe im Archiv folgenden Beitrag gefunden:
https://www.herber.de/forum/archiv/1696to1700/1697983_per_VBA_ein_Feld_aus_einer_Internetseite_abfragen.html
würde gerne aus der Seite ein Preis auslesen (auf der linke Seite grossgeschrieben):
https://www.investing.com/crypto/ethereum/eth-usd-chart
  • Sub ETH()
    Dim browser As Object
    Dim url As String
    Dim knotenWurzel As Object
    Dim splitArray() As String
    Dim spielZeit As String
    url = "https://www.investing.com/crypto/ethereum/eth-usd-chart"
    '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
    'Zeitstempel aus dem YouTubePlayer auslesen
    'Das entsprechende div-Tag verwendet als einziges die Klasse "ytp-progress-bar "
    'Dann folgen einige Attribute, von denen wir den Wert von aria-valuetext brauchen
    '
    Set knotenWurzel = browser.document.getElementsByClassName("arial_26 inlineblock pid-1058142- _ last") If Not knotenWurzel Is Nothing Then 'Wurde das div-Tag gefunden, direkt das Attribut mit Zeitstempel 'über Split() in seine Bestandteile zerlegen 'Leerzeichen = Trennzeichen (Delimeter) splitArray = Split(knotenWurzel.getAttribute("aria-valuetext")) 'Die Spielzeit des Videos steht nun im letzten Element des Arrays spielZeit = splitArray(UBound(splitArray)) 'Else 'spielZeit = "Keine Zeit ausgelesen" End If 'Aufräumen browser.Quit Set browser = Nothing Set knotenWurzel = Nothing 'Spielzeit ausgeben MsgBox spielZeit End Sub

    Die Funktion Split ist natürlich falsch. Im knotenWurzel ist der Preis drin, leider habe keine Idee, wie ich den ins Msgbox rüberbringe.
    Danke im Voraus für Eure Hilfe!
  • 2
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: per VBA ein Feld aus einer Internetseite auslesen
    28.06.2019 14:52:00
    Zwenn
    Hallo kocius,
    das funktioniert so:
    
    Sub ETH()
    Dim browser As Object
    Dim url As String
    Dim wertETH As String
    url = "https://www.investing.com/crypto/ethereum/eth-usd-chart"
    '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
    'Der Wert für Ethereum kann direkt über die ID abgegriffen werden
    wertETH = Trim(browser.document.getElementByID("last_last").innertext)
    'Aufräumen
    browser.Quit
    Set browser = Nothing
    'Aktueller Kurs von Ethereum
    MsgBox wertETH
    End Sub
    

    Beachte das die Variable wertETH vom Datentyp String ist. So hast Du die Möglichkeit z.B. durch Replace() den Punkt gegen ein Komma auszutauschen, zu prüfen ob es sich um einen numerischen Wert handelt und dann erst in eine Zahl vom Datentyp Double umwandeln, um damit rechnen zu können.
    Viele Grüße,
    Zwenn
    Anzeige
    AW: per VBA ein Feld aus einer Internetseite auslesen
    29.06.2019 02:22:41
    kocius
    Danke Zwenn für die Hilfe, funktioniert einwandfrei!

    18 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige