Mit Pandas Tabelle aus Yahoo Finance auslesen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
MarcV
User
Beiträge: 11
Registriert: Dienstag 12. Juli 2016, 15:49

Hallo Zusammen,

ich heiße Marc, bin neu hier und habe vor wenigen Tagen angefangen mit Python zu programmieren. Vorher habe ich primär kleine Skripts in VBA erstellt.

Bei einem Problem komme ich aktuell leider nicht weiter. Vielleicht kann mir einer von Euch helfen?

Ich möchte die Tabelle "Valuation Measures" der Seite http://finance.yahoo.com/quote/SIE.DE/key-statistics mit pandas auslesen und habe das folgende Skript versucht.

Code: Alles auswählen

import pandas as pd

url = "http://finance.yahoo.com/quote/SIE.DE/key-statistics"
df = pd.read_html(url)
print(df)
Grundsätzlich funktioniert das Skript. Leider bekomme ich aber nur die Tabelle oben rechts auf der Seite als Ergebnis. Alle anderen Seiteninhalte scheinen nicht Teil des dataframes zu sein.

Hat jemand eine Idee, wie ich die weiteren Daten mit pandas auslesen kann? Wäre super, wenn das mit pandas gelänge.

Vielen Dank für Eure Hilfe!!!

Marc
BlackJack

@MarcV: Die Daten werden im Webbrowser per JavaScript nachgeladen. Bietet Yahoo nicht eine API für so etwas?
MarcV
User
Beiträge: 11
Registriert: Dienstag 12. Juli 2016, 15:49

Hallo BlackJack,

ja, da gibt es eine API, die auch sehr gut funktioniert. Nur enthält die API die von mir gewünschten Werte nicht :(
Mich wundert nur, das die eine Tabelle auf der Seite angezeigt wird und die andere nicht.
Hätte ja verstanden, wenn keine Tabelle erkannt würde.

Trotzdem, vielen Dank für Deine Hilfe!
BlackJack

@MarcV: Wie gesagt, die Tabelle ist nicht auf der Seite, also nicht in dem HTML das von der URL abrufbar ist. Da ist JavaScript-Code der diese Tabelle nachlädt wenn die Seite im Browser angezeigt wird.
MarcV
User
Beiträge: 11
Registriert: Dienstag 12. Juli 2016, 15:49

Ok, schade!
Vielen Dank für Deine Mühe!!!
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,
Nur enthält die API die von mir gewünschten Werte nicht
Die Aussage ist nach meinem Verständnis falsch. Habe gerade ein paar stichprobenartig geprüft und das geht - du musst die Werte, die die haben willst, im `s` Parameter des API-Calls machen.

Auf der Seite hier: http://www.jarloo.com/yahoo_finance/ oder auch hier: http://brusdeylins.info/tips_and_tricks ... nance-api/ ist es IMHO ganz gut erklärt.

Dann liefert die API auch die Daten im CSV-Format zurück und dafür gibt es in Panda AFAIK eine Methode, um das zu Lesen.

Außerdem stellt Pandas doch auch eigene Methoden zum Lesen von Daten direkt von Yahoo! Finance bereit: http://pandas.pydata.org/pandas-docs/st ... data-yahoo

Gruß, noisefloor
Antworten