Blinder Fleck: Oder, wie bekomme ich historische Kurse, wenn ich nur die ISIN habe?

Published Jan. 10, 2023, 12:33 p.m. by finsteininvest

Du hast ein Portfolio zusammengestellt, brav die ISIN in Portfolio Performance eingetragen aber die Seite von der Du historische Kurse abfragen möchtest hat nur begrenzte Daten? Über Ariva kann eine CSV Datei heruntergeladen werden. Der Zeitraum für die historischen Kurse läßt sich flexibel einstellen.

Es gibt nur ein Problem. Man kann nicht einfach die ISIN zum Heruntertladen benutzen. Die URL, die benutzt wird, um eine Aktie zu finden lautet (z.B.) : https://www.ariva.de/search/search.m?searchname=CH0012221716

Als Antwort kommt: https://www.ariva.de/korian-aktie?utp=1

Die historischen Kurse finden sich bei dem Tab "Kurse" und dann "Historische Kurse". Dort befindet sich ein Download Button, der folgenden Link öffnet: https://www.ariva.de/quote/historic/historic.csv?secu=100064230&boerse_id=131&clean_split=1&clean_payout=0&clean_bezug=1&min_time=10.1.2022&max_time=10.1.2023&trenner=%3B&go=Download

Spannend ist der Wert "secu". Dieser befindet sich im HTML Quellcode.

Dieser muss herausgelesen werden, um den Downloadlink zusammenbauen zu können.

Und so wird es in Python umgesetzt:

Zeile 6 - 10: Notwendige Bibliotheken laden.

Zeile 13 - 14: ISIN Werte azs Datei einlesen. In dieser Datei befindet in einer eigene Zeile die ISIN:

                        

Zeile 16: Ausgabe der ISIN, die gerade verarbeitet wird.

Zeile 17: Erster Aufruf bei Ariva, um die Seite der Aktie zu erhalten.

Zeile 18: Aus der Rückgabe URL den Aktiennamen herauslesen.

Zeile 19: Zweiter Aufruf an Ariva, um die Seite mit den historischen Kursen zu öffnen. Wir benötigen den Aktiennamen aus Zeile 18.

Zeile 20 - 22: Aus dem HTML Quellcode wird ein Tag gesucht, der den Namen "secu" hat und dazu der Wert ausgelesen.

Zeile 23: Downlink zusammenbauen. Dazu brauchen wir den Wert von "secu" aus Zeile 22. Achtung: min_time und max_time anpassen.

Zeile 24: Link aufrufen.

Zeile 25 - 27: Ergebniss in eine Datei Schreiben. Die Datei bekommt als Name, die ISIN.

Zeile 28: Netiquette. Ariva eine Pause geben

Den Code gibt es bei Github.

Das Programm wird von der Kommandozeile aufgerufen:


python collect_from_isin.py -f liste.txt