faiteanu / JavaStockQuotes

Java library for fetching historical stock quotes.
Other
11 stars 5 forks source link

Fehler beim Abruf der Kurse #6

Closed MHoeller closed 6 months ago

MHoeller commented 7 months ago

Hallo zusammen, leider meldet das avira.js beim Abholen der Kurse: "Fehler beim Abholen der Kurse". Bis jetzt habe ich keine Möglichkeit gefunden aussagekräftiger Fehlermeldungen zu erhalten. Könnt Ihr den Fehler reproduzieren? Zwar glaube ich nicht an ein lokales Problem, wohl ehr eine Änderungen auf avira.de aber man weiss ja nie... Viele Grüße, Michael

MHoeller commented 7 months ago

Kein lokales Problem. Es ist nun ein login nötig. Es funktioniert leider nicht sich im Browser anzumelden und dann die Daten in Hibiscus abzurufen. Ich kenne mich nun leider so gar nicht aus wie man dem javascript nun eine Anmeldung beibringt damit er die Session kennt. Ist das möglich? Zur Not könnte man ja einmal manuell user und pwd im Script ablegen.

* histUrl **http://www.ariva.de/quote/historic/historic.csv?secu=158434555&boerse_id=0&clean_split=0&clean_payout=0&clean_bezug=0&currency=EUR&min_time=1.1.2000&max_time=23.1.2024&trenner=%3B&go=Download

* text **HtmlPage(https://www.ariva.de/user/config/change_password.m)@1022415548

faiteanu commented 6 months ago

Man könnte das evtl. so umprogrammieren, dass im Quellcode Benutzer + Passwort hinterlegt werden. Dann müsste der Code zuerst die Login-Seite aufrufen, Daten eintragen, Login ausführen und vermutlich danach die Zielseite noch einmal aufrufen. Es wäre schön, wenn sich jemand dieser Aufgabe annehmen könnte.

MHoeller commented 6 months ago

Fast, du bekommst nach dem Login einen AuthToken den musst du dir sichern und beim Request der Zielseite mitgeben. Da die Login Seite noch eine ganze Menge mehr schreibt, bin ich mir nicht sicher ob der Token alleine reicht. Ich hatte mal die ersten Schritte gewagt, bin aber zu wenig Backend Entwickler. Ich hoffe es findet sich jemand der sich besser auskennt. Derzeit behelfe ich mir mit csv Daten der Bank, die sind aber recht umständlich einzulesen, und dem Download der Kurswerte von yahoo da gibt es noch eine Menge Kurse ohne Login, mangels Plugin ist das aber auch ein rechter Krampf die Kurse zu verwenden. ...

gnampf1 commented 6 months ago

schmeisst in die Methode "prepare" hinter das "url = getURL()" folgenden Block:

try{
        page = webClient.getPage(url + "/user/login/?ref=Lw==");
        form = page.getHtmlElementById("kc-form-login");
        form.getInputByName("username").type("MeinUserName");
        form.getInputByName("password").type("MeinPasswort");
        page = page.getHtmlElementById("submit").click();
}catch (error)
{
        Logger.info("Error on Login: "+error);
        Logger.info("Page war " + page.asXml());
}

und ersetzt natürlich MeinUserName und MeinPasswort durch eure Credentials, dann dürfte es wieder gehen.

MHoeller commented 6 months ago

Perfekt! Habe den try/catch rein kopiert - funktioniert und läuft rund wie ein Diesel :-) Vielen Dank!

faiteanu commented 6 months ago

Danke für den Fix @gnampf1, ist nun eingebaut. Die Doku-Seite ist entsprechend angepasst: https://faiteanu.github.io/JavaStockQuotes/