Hallo Freunde,
ich versuche vergebens die Wechselkurse einer Türkischen Bank abzufragen..
die Website ist folgende http://www.isbank.com.tr/TR/fiyatlar-ve-oranlar/doviz-kurlari/Sayfalar/doviz-kurlari.aspx
Folgendes Device habe ich zwar angelegt aber leider bekomme ich kein Content..
Internals:
.getList
.setList interval reread:noArg stop:noArg start:noArg upgradeAttributes:noArg storeKeyValue
.updateRequestHash 1
BUSY 0
CFGFN
DEF http://www.isbank.com.tr/TR/fiyatlar-ve-oranlar/doviz-kurlari/Sayfalar/doviz-kurlari.aspx 120
HTTPCookies
Interval 120
JSONEnabled 1
LASTSEND 1507832241.19052
MainURL http://www.isbank.com.tr/TR/fiyatlar-ve-oranlar/doviz-kurlari/Sayfalar/doviz-kurlari.aspx
ModuleVersion 3.4.0 - 9.9.2017
NAME IsBank
NR 11243
STATE ???
TRIGGERTIME 1507832361.18647
TRIGGERTIME_FMT 2017-10-12 20:19:21
TYPE HTTPMOD
addr http://www.isbank.com.tr:80
buf
code 200
conn
data
displayurl http://www.isbank.com.tr/TR/fiyatlar-ve-oranlar/doviz-kurlari/Sayfalar/doviz-kurlari.aspx
header User-Agent: Mozilla/5.0 (Windows NT 6.0)
host www.isbank.com.tr
httpheader HTTP/1.1 200 OK
Cache-Control: no-cache
Connection: close
Pragma: no-cache
Content-Type: text/html; charset=utf-8
Content-Length: 0
httpversion 1.0
hu_blocking 0
hu_filecount 337
hu_port 80
hu_portSfx
ignoreredirects 0
loglevel 4
path /TR/fiyatlar-ve-oranlar/doviz-kurlari/Sayfalar/doviz-kurlari.aspx
protocol http
redirects 0
timeout 5
url http://www.isbank.com.tr/TR/fiyatlar-ve-oranlar/doviz-kurlari/Sayfalar/doviz-kurlari.aspx
value 0
.readingParseList:
01
HTTPCookieHash:
Helper:
DBLOG:
CurEURYTL:
LogDB_FHEM:
TIME 1507797802.25129
VALUE 1
state:
LogDB_FHEM:
TIME 1507805275.83467
VALUE reread
QUEUE:
READINGS:
2017-10-12 20:17:21 CurEURYTL HTTP/1.1 200 OK
Cache-Control: no-cache
Connection: close
Pragma: no-cache
Content-Type: text/html; charset=utf-8
Content-Length: 0
REQUEST:
data
header User-Agent: Mozilla/5.0 (Windows NT 6.0)
ignoreredirects 0
retryCount 0
type update
url http://www.isbank.com.tr/TR/fiyatlar-ve-oranlar/doviz-kurlari/Sayfalar/doviz-kurlari.aspx
value 0
defptr:
readingBase:
CurEURYTL reading
readingNum:
CurEURYTL 01
readingOutdated:
requestReadings:
update:
CurEURYTL reading 01
sslargs:
SSL_verify_mode SSL_VERIFY_NONE
Attributes:
enableControlSet 1
enableCookies 1
extractAllJSON 1
reading01Name CurEURYTL
reading01RegOpt s
reading01Regex ^(.*)$
requestHeader.* User-Agent: Mozilla/5.0 (Windows NT 6.0)
room DövizKurs
timeout 5
userattr reading01Name reading01RegOpt reading01Regex
verbose 5
Wer kann mir freundlicherweise weiterhelfen..??
Ergebniss soll z.B. wie folgt aussehen.. siehe Anhang
Gruß
Basi79
Hallo,
baue dir mit den Readings die rein kommen eine readingsGroup dann kannst es dir zusammenstellen wie du willst.
selamlar
Zitat von: tarum am 13 Oktober 2017, 09:44:06
Hallo,
baue dir mit den Readings die rein kommen eine readingsGroup dann kannst es dir zusammenstellen wie du willst.
selamlar
Hi tarum,
das Problem ist genau.. das keine Readings kommen.. der Response der Seite mit HTTPMOD bleibt leer.. Content Length=0..
und genau da benötige ich Hilfe.. wie Frage ich die Seite am besten ab..?? weitere Header Attribute oder JSON..??
Komme mit dem Entwicklertools von Chrome auch nicht so genau weiter.. :)
Das Beispiel im Bild.. habe ich als Bespiel hinzugefügt was ich am ende als Reading haben will wenn das ganze mit HTTPMOD funktioniert..
Gruß
basi79
Problem Nummer 1 - Auf dem von Dir angegebenen URL kommt einen Seite zurück die wohl die Werte gar nicht enthält (zumindest habe ich sie nicht gefunden). Was auch nicht verwunderlich ist, denn das Datum lässt sich ja eingeben und dann ändert sich der URL nichtm also wird es irgendwie im Hintergrund gezogen.
Du musst also die Seite (javascript / HTML5) analysieren um festzustellen wie die Werte gelesen werden.
Tipp: Suche nach einer Möglichkeit ob es eine Variante der Seite oder der Kurse für den Ausdruck ausgeben - Diese Seiten sind häufig statisch und lassen sich besser mit httpmod bearbeiten
Ich habe mal ein wenig rumgespielt, der eigentliche URL hat wohl die Form:
http://www.isbank.com.tr/_layouts/ISB_DA/HttpHandlers/FxRatesHandler.ashx?Lang=tr&fxRateType=INTERACTIVE&date=2017-10-3&time=1507907035934 (http://www.isbank.com.tr/_layouts/ISB_DA/HttpHandlers/FxRatesHandler.ashx?Lang=tr&fxRateType=INTERACTIVE&date=2017-10-3&time=1507907035934)
Da kommt dann JSON zurück, das müsste sich behandeln lassen
hmm.. ok
ich habe nun mal folgendes Probiert:
Internals:
.getList
.setList interval reread:noArg stop:noArg start:noArg upgradeAttributes:noArg storeKeyValue
.updateRequestHash 1
BUSY 0
CFGFN
CHANGED
DEF http://www.isbank.com.tr/_layouts/ISB_DA/HttpHandlers/FxRatesHandler.ashx?Lang=tr&fxRateType=INTERACTIVE&date=Heute 120
HTTPCookies
Interval 120
JSONEnabled 1
LASTSEND 1507939330.65934
MainURL http://www.isbank.com.tr/_layouts/ISB_DA/HttpHandlers/FxRatesHandler.ashx?Lang=tr&fxRateType=INTERACTIVE&date=Heute
ModuleVersion 3.4.0 - 9.9.2017
NAME IsBank3
NR 9600
ReplacementEnabled 1
STATE ???
TRIGGERTIME 1507939450.65374
TRIGGERTIME_FMT 2017-10-14 02:04:10
TYPE HTTPMOD
addr http://www.isbank.com.tr:80
buf
code 200
conn
data
displayurl http://www.isbank.com.tr/_layouts/ISB_DA/HttpHandlers/FxRatesHandler.ashx?Lang=tr&fxRateType=INTERACTIVE&date=2017-10-14
header Content-Type: application/json
Attributes:
enableControlSet 1
enableCookies 1
extractAllJSON 1
replacement0Mode expression
replacement0Regex (Heute)
replacement0Value strftime "%Y-%m-%d", localtime
requestHeader1 Content-Type: application/json
requestHeader2 Accept: */*
room DövizKurs
userattr replacement0Mode:reading,internal,text,expression,key replacement0Regex replacement0Value requestHeader1 requestHeader2
verbose 5
aber leider kommen keine Daten zurück.. noch etwas vergessen in den Attributen..??
2017.10.14 02:01:10 5: IsBank3: set called with reread
2017.10.14 02:01:10 4: IsBank3: GetUpdate called (reread)
2017.10.14 02:01:10 4: IsBank3: AddToQueue adds update, initial queue len: 0
2017.10.14 02:01:10 5: IsBank3: AddToQueue adds type update to URL http://www.isbank.com.tr/_layouts/ISB_DA/HttpHandlers/FxRatesHandler.ashx?Lang=tr&fxRateType=INTERACTIVE&date=Heute, no data, header Content-Type: application/json
Accept: */*, retry 0
2017.10.14 02:01:10 5: IsBank3: HandleSendQueue called, qlen = 1
2017.10.14 02:01:10 5: IsBank3: Replace called for type update, regex (Heute), mode expression, value strftime "%Y-%m-%d", localtime input: Content-Type: application/json
Accept: */*
2017.10.14 02:01:10 5: IsBank3: Replace called for type update, regex (Heute), mode expression, value strftime "%Y-%m-%d", localtime input:
2017.10.14 02:01:10 5: IsBank3: Replace called for type update, regex (Heute), mode expression, value strftime "%Y-%m-%d", localtime input: http://www.isbank.com.tr/_layouts/ISB_DA/HttpHandlers/FxRatesHandler.ashx?Lang=tr&fxRateType=INTERACTIVE&date=Heute
2017.10.14 02:01:10 4: IsBank3: Replace: match for type update, regex (Heute), mode expression, value strftime "%Y-%m-%d", localtime, input: http://www.isbank.com.tr/_layouts/ISB_DA/HttpHandlers/FxRatesHandler.ashx?Lang=tr&fxRateType=INTERACTIVE&date=Heute, result is http://www.isbank.com.tr/_layouts/ISB_DA/HttpHandlers/FxRatesHandler.ashx?Lang=tr&fxRateType=INTERACTIVE&date=2017-10-14
2017.10.14 02:01:10 4: IsBank3: HandleSendQueue sends request type update to URL http://www.isbank.com.tr/_layouts/ISB_DA/HttpHandlers/FxRatesHandler.ashx?Lang=tr&fxRateType=INTERACTIVE&date=2017-10-14, No Data,
header: Content-Type: application/json
Accept: */*,
timeout 2
2017.10.14 02:01:10 4: HttpUtils url=http://www.isbank.com.tr/_layouts/ISB_DA/HttpHandlers/FxRatesHandler.ashx?Lang=tr&fxRateType=INTERACTIVE&date=2017-10-14
2017.10.14 02:01:11 5: HttpUtils request header:
GET /_layouts/ISB_DA/HttpHandlers/FxRatesHandler.ashx?Lang=tr&fxRateType=INTERACTIVE&date=2017-10-14 HTTP/1.0
Host: www.isbank.com.tr
User-Agent: fhem
Content-Type: application/json
Accept: */*
Content-Length: 0
2017.10.14 02:01:12 4: http://www.isbank.com.tr/_layouts/ISB_DA/HttpHandlers/FxRatesHandler.ashx?Lang=tr&fxRateType=INTERACTIVE&date=2017-10-14: HTTP response code 200
2017.10.14 02:01:12 4: HttpUtils http://www.isbank.com.tr/_layouts/ISB_DA/HttpHandlers/FxRatesHandler.ashx?Lang=tr&fxRateType=INTERACTIVE&date=2017-10-14: Got data, length: 0
2017.10.14 02:01:12 5: HttpUtils response header:
HTTP/1.1 200 OK
Cache-Control: no-cache
Connection: close
Pragma: no-cache
Content-Type: text/html; charset=utf-8
Content-Length: 0
2017.10.14 02:01:12 4: IsBank3: Read callback: request type was update retry 0,
Header: HTTP/1.1 200 OK
Cache-Control: no-cache
Connection: close
Pragma: no-cache
Content-Type: text/html; charset=utf-8
Content-Length: 0, body empty
2017.10.14 02:01:12 5: IsBank3: looking for Cookies in HTTP/1.1 200 OK
Cache-Control: no-cache
Connection: close
Pragma: no-cache
Content-Type: text/html; charset=utf-8
Content-Length: 0
2017.10.14 02:01:12 5: IsBank3: ExtractSid called, context reading, num
2017.10.14 02:01:12 4: IsBank3: CheckAuth decided no authentication required
2017.10.14 02:01:12 3: IsBank3: no parsed JSON structure available
2017.10.14 02:01:12 5: IsBank3: Read starts parsing response to update with defined readings:
2017.10.14 02:01:12 3: IsBank3: Read response to update didn't match any Reading
2017.10.14 02:01:12 5: IsBank3: HandleSendQueue called, qlen = 0
Ich hätte gerne geholfen, aber mein Bitdefender meckert permanent, dass diese Webseite schädlich wäre... Dann sorry, mache lieber nicht weiter.
Mir erscheint es einfacher Google zu bemühen und eine der Websites zu nutzen, die eine kostenlose Wechselkurs (JSON) API anbieten, als das von der türkischen Bank holen zu wollen... :)
Zitat von: amenomade am 14 Oktober 2017, 13:48:37
Ich hätte gerne geholfen, aber mein Bitdefender meckert permanent, dass diese Webseite schädlich wäre... Dann sorry, mache lieber nicht weiter.
:) vielleicht solltest du mal ein Professionelles Security Tool benutzen.. was auch wirklich Bedrohungen erkennt.. :)
IsBank ist eines der Renommiertesten Arbeiter Banken der Türkei... Hat nichts mit der wohl im Volkesmunde IS zu tun.. :)
Meckert dein Bitdefender auch bei der Postbank,Targobank,Commerzbank herum..?? :)
Naja ist auch nicht zu schlimm.. :)
trotzdem danke..
Gruß
Basi79
Zitat von: maddhin am 14 Oktober 2017, 15:00:41
Mir erscheint es einfacher Google zu bemühen und eine der Websites zu nutzen, die eine kostenlose Wechselkurs (JSON) API anbieten, als das von der türkischen Bank holen zu wollen... :)
ja ich frage bereits eine andere Quelle ab.. aber ich möchte es gern perfektionieren .. und möchte die Information aktuell direkt von der Bank haben..
Hat auch nichts mit der Quelle zu tun.. könnte auch genauso gut eine Wetterstation Seite sein.. :)
Es geht hier um die Möglichkeit sowie art uns weise der Funktion..
trotzdem danke..
..bin leider noch nicht am Ziel.. :)
Gruß
Basi79
Ich habe selber etwas rumgespielt und bin auch noch nicht weiter gekommen, auch beim nachbilden aller Header, die mein Browser schickt, kommt bei mir Content-length: 0 und text/html zurück. Also keine Daten und auch kein Zeichen für JSON.
Ich denke Du musst noch etwas mit den Headern arbeiten, die der Browser sendet, um das JSON zu erhalten - Der Cookie ist offensichtlich nicht nötig, denn den habe ich entfernen können im Browser.
Ich gebe hier erstmal auf, denn es scheint mir wirklich einfacher, dass von woanders zu holen.
Bei den Tests, die ich gestern mit BurpSuite gemacht habe, habe ich gesehen, dass er eigentlich zwei Cookies holt/braucht. Ich weiss nicht, wie HTTPMOD damit umgehen kann.