Skip to content

Commit bb7262d

Browse files
authored
add historic quotes retrieval from updated page at finanzen.net #16
* add historic quotes retrieval from updated page at finanzen.net #16 - add another catch block for English named html elements to select exchange and date ranges - single-source request url - provide logger - add logger debugs at each catch to show reason of exception * remove unused method * update date/version of extension
1 parent eeca44e commit bb7262d

2 files changed

Lines changed: 53 additions & 36 deletions

File tree

docs/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
2020
## Finanzen.net
2121
22-
- [finanzennet.js](https://raw.githubusercontent.com/faiteanu/JavaStockQuotes/master/js/finanzennet.js) (zuletzt geändert 07.02.2026)
22+
- [finanzennet.js](https://raw.githubusercontent.com/faiteanu/JavaStockQuotes/master/js/finanzennet.js) (zuletzt geändert 18.03.2026)
2323
herunterladen und unter Windows speichern unter
2424
`C:\Users\{USERNAME}\.jameica\hibiscus.depotviewer\js`
2525
Unter Linux das entsprechende Benutzer-Verzeichnis wählen.

js/finanzennet.js

Lines changed: 52 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
const DEFAULT_START_DATE = '2020-01-01';
88

99
var ArrayList = java.util.ArrayList;
10+
let logger = Packages.de.willuhn.logging.Logger;
1011

1112
var fetcher;
1213
var wc;
@@ -19,17 +20,17 @@ function getAPIVersion() {
1920
}
2021

2122
function getVersion() {
22-
return "2025-01-18";
23-
}
24-
25-
function getDate(year, month, day) {
26-
return new java.util.Date(year - 1900, month - 1, day);
23+
return "2026-03-18";
2724
}
2825

2926
function getURL() {
3027
return "http://www.finanzen.net";
3128
}
3229

30+
function getAktienSucheUrl(search) {
31+
return "http://www.finanzen.net/suchergebnis.asp?frmAktiensucheTextfeld=" + search;
32+
}
33+
3334
function getName() {
3435
return "Finanzen.net";
3536
}
@@ -48,18 +49,17 @@ function prepare(
4849

4950
wc = fetcher.getWebClient(true);
5051
wc.getOptions().setThrowExceptionOnFailingStatusCode(false);
51-
Packages.de.willuhn.logging.Logger.debug("load http://www.finanzen.net/suchergebnis.asp?frmAktiensucheTextfeld=" + search);
52-
page = wc.getPage(
53-
"http://www.finanzen.net/suchergebnis.asp?frmAktiensucheTextfeld=" + search
54-
);
52+
const url = getAktienSucheUrl(search);
53+
logger.debug("load " + url);
54+
page = wc.getPage(url);
5555

5656
try {
57-
Packages.de.willuhn.logging.Logger.debug("suche Link Kurse");
57+
logger.debug("suche Link Kurse");
5858
links = page.getAnchorByText("Kurse");
5959
page = links.click();
60-
Packages.de.willuhn.logging.Logger.debug("suche Select historic-prices-stock-market");
60+
logger.debug("suche Select historic-prices-stock-market");
6161
boerseSelect = page.getElementById("historic-prices-stock-market");
62-
Packages.de.willuhn.logging.Logger.debug("suche Button request-historic-price");
62+
logger.debug("suche Button request-historic-price");
6363
searchButton = page.getElementById("request-historic-price");
6464

6565
input = page.getElementById("fromDate");
@@ -72,41 +72,59 @@ function prepare(
7272
input = page.getElementById("toDate");
7373
input.setValue(input.getMax());
7474
} catch (e) {
75+
logger.debug("versuche Alternative aufgrund " + e);
7576
try {
76-
Packages.de.willuhn.logging.Logger.debug("suche Link historische Kurse");
77+
logger.debug("suche Link historische Kurse");
7778
links = page.getAnchorByText("Historische Kurse");
7879
page = links.click();
7980
} catch (error) {
81+
logger.debug("versuche Alternative aufgrund " + error);
8082
try {
81-
Packages.de.willuhn.logging.Logger.debug("suche Link Kurse & Realtime");
83+
logger.debug("suche Link Kurse & Realtime");
8284
links = page.getAnchorByText("Kurse & Realtime");
8385
page = links.click();
84-
Packages.de.willuhn.logging.Logger.debug("suche Link historische Kurse");
86+
logger.debug("suche Link historische Kurse");
8587
links = page.getAnchorByText("Historische Kurse");
8688
page = links.click();
8789
} catch (error2) {
90+
logger.debug("versuche Alternative aufgrund " + error2);
8891
// navigate to historic rates for "Zertifikate"
89-
Packages.de.willuhn.logging.Logger.debug("suche Link Historisch");
92+
logger.debug("suche Link Historisch");
9093
links = page.getAnchorByText("Historisch");
9194
page = links.click();
9295
}
9396
}
9497
try {
95-
Packages.de.willuhn.logging.Logger.debug("suche Select strBoerse");
96-
boerseSelect = page.getElementByName("strBoerse");
97-
Packages.de.willuhn.logging.Logger.debug("suche search-Button");
98-
searchButton = boerseSelect.getFirstByXPath("../../div/button");
98+
try {
99+
logger.debug("suche Select strBoerse");
100+
boerseSelect = page.getElementByName("strBoerse");
99101

100-
input = page.getElementByName("dtDate1");
101-
input.setValue(input.getMin());
102+
input = page.getElementByName("dtDate1");
103+
input.setValue(input.getMin());
102104

103-
input = page.getElementByName("dtDate2");
104-
input.setValue(input.getMax());
105+
input = page.getElementByName("dtDate2");
106+
input.setValue(input.getMax());
107+
}
108+
catch (error2) {
109+
logger.debug("versuche Alternative aufgrund " + error2);
110+
logger.debug("suche Select exchange");
111+
boerseSelect = page.getElementByName("exchange");
112+
113+
input = page.getElementByName("date-from");
114+
input.setValue(input.getMin());
115+
116+
input = page.getElementByName("date-to");
117+
input.setValue(input.getMax());
118+
}
119+
120+
logger.debug("suche search-Button");
121+
searchButton = boerseSelect.getFirstByXPath("../../div/button");
105122
} catch (error) {
123+
logger.debug("versuche Alternative aufgrund " + error);
106124
// retrieve historic rates for "Zertifikate"
107-
Packages.de.willuhn.logging.Logger.debug("suche Select historic-prices-stock-market");
125+
logger.debug("suche Select historic-prices-stock-market");
108126
boerseSelect = page.getElementById("historic-prices-stock-market");
109-
Packages.de.willuhn.logging.Logger.debug("suche search-Button");
127+
logger.debug("suche search-Button");
110128
searchButton = page.getElementById("request-historic-price");
111129

112130
input = page.getElementById("derivative-historical-start-date");
@@ -119,7 +137,7 @@ function prepare(
119137

120138
var liste = new ArrayList();
121139
if (!page) {
122-
Packages.de.willuhn.logging.Logger.error("Konnte Kurse Link nicht finden");
140+
logger.error("Konnte Kurse Link nicht finden");
123141
} else {
124142
// Handelsplätze extrahieren
125143

@@ -132,7 +150,7 @@ function prepare(
132150
liste.add(cfg);
133151
}
134152

135-
153+
logger.debug("extrahierte Handelsplätze: " + liste);
136154
return liste;
137155
}
138156

@@ -153,20 +171,21 @@ function process(config) {
153171
}
154172

155173
if (!boerseSelect) {
156-
Packages.de.willuhn.logging.Logger.error("Börsenauswahl nicht gefunden");
174+
logger.error("Börsenauswahl nicht gefunden");
157175
} else {
158176
option = boerseSelect.getOptionByValue(boerse);
159177
boerseSelect.setSelectedAttribute(option, true);
160178
}
161179

180+
logger.debug("frage Kurse ab...")
162181
page = searchButton.click();
163182
wc.waitForBackgroundJavaScript(10000);
164183
tab = Packages.jsq.tools.HtmlUnitTools.getTableByPartContent(page, "Datum");
165184
if (!tab) {
166-
Packages.de.willuhn.logging.Logger.error("Börsenauswahl nicht gefunden");
185+
logger.error("Börsenauswahl nicht gefunden");
167186
} else {
168187
list = Packages.jsq.tools.HtmlUnitTools.analyse(tab);
169-
Packages.de.willuhn.logging.Logger.info(list.size() + " Kurse gefunden");
188+
logger.info(list.size() + " Kurse gefunden");
170189
for (i = 0; i < list.size(); i++) {
171190
try {
172191
hashmap = list.get(i);
@@ -208,7 +227,7 @@ function process(config) {
208227
dc.put("currency", currency);
209228
res.add(dc);
210229
} catch (error) {
211-
Packages.de.willuhn.logging.Logger.error("Fehler beim Kurse auslesen: " + error + "\n" + hashmap);
230+
logger.error("Fehler beim Kurse auslesen: " + error + "\n" + hashmap);
212231
}
213232
}
214233
}
@@ -219,7 +238,5 @@ function search(fetch, search) {
219238
fetcher = fetch;
220239

221240
wc = fetcher.getWebClient(true);
222-
page = wc.getPage(
223-
"http://www.finanzen.net/suchergebnis.asp?frmAktiensucheTextfeld=" + search
224-
);
241+
page = wc.getPage(getAktienSucheUrl(search));
225242
}

0 commit comments

Comments
 (0)