Historische Börsendaten von Website laden

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
earloop
User
Beiträge: 38
Registriert: Sonntag 11. Oktober 2020, 13:54

Hallo,

ich würde gerne automatisch historische Kursdaten aus dem Internet laden.

Dazu gibt es z.B. investpy, das die Daten von www.investing.com lädt, funktioniert nur leider nicht (mit allen Fonds):

Code: Alles auswählen

import investpy
df = investpy.funds.get_fund_historical_data('LU0061928585', 'luxembourg', '01/01/2020', '01/01/2021', as_json = False, order = 'ascending', interval = 'Daily')
führt zu:

Code: Alles auswählen

RuntimeError: ERR#0019: fund lu0061928585 not found, check if it is correct.

Eine andere Option ist yfinance, auch das funktioniert nicht:

Code: Alles auswählen

import yfinance as yf

msft = yf.Ticker("OE7A.F")
hist = msft.history(period="1y")
hist hat nur einen Kurs, statt alle Kurse eines Jahres mit Tagesauflösung.


Noch eine andere Möglichkeit ist das Webscraping von www.boerse.de mit Pandas:

Code: Alles auswählen

df = pd.read_html('https://www.boerse.de/historische-kurse/OekoWorld-OekoVision-Classic-C/LU0061928585_seite,1,anzahl,20')[3]
Das lädt die Kurse der letzten 21 Tage. Damit könnte ich eine Schleife bauen, die den Seitenzähler immer um 1 erhöht und so beliebig weit in die Vergangenheit alle Kursdaten abruft.
Leider funktioniert auch das nicht, ich vermute weil die Seite sich durch ein captcha vor zu vielen Seitenaufrufen schützt.

Hat noch jemand eine andere Idee?
rogerb
User
Beiträge: 878
Registriert: Dienstag 26. November 2019, 23:24

@earloop,

investpy erwartet den tatsächlichen Namen und nicht die ISIN:

Code: Alles auswählen

df = investpy.funds.get_fund_historical_data('ökoworld ökovision Classic C', 'luxembourg', '01/01/2020', '01/01/2021', as_json = False, order = 'ascending', interval = 'Daily')
Die Dokumentation ist da vielleicht nicht ideal:
https://investpy.readthedocs.io/_api/fu ... rical_data

Im Source Code findet man das Problem dann irgend wann:
https://github.com/alvarobartt/investpy ... y/funds.py

Da werden noch zusätzliche Informationen zu jedem Symbol aus einer csv Tabelle geladen. Die müssen passen:
https://github.com/alvarobartt/investpy ... /funds.csv
earloop
User
Beiträge: 38
Registriert: Sonntag 11. Oktober 2020, 13:54

Danke, jetzt bin ich was das angeht schonmal schlauer. In dieser Liste kann ich dann ja nach der ISIN suchen:
https://raw.githubusercontent.com/alvar ... /funds.csv
Leider ist die Liste unvollständig, diesen gibt es z.B. nicht: AT0000705678, obwohl es den auf investing.com schon gibt: https://www.investing.com/funds/at0000705678

Inzwischen bin ich auf https://marketstack.com/ und https://www.alphavantage.co/, die bieten APIs zur Datenabfrage an. Aber auch da gibt es leider nicht alle Fonds, die ich brauche.

Scheint wohl kein einfaches Unterfangen zu sein...
Antworten