NEWS
Website mit JavaScript parsen
-
Hey, ich suche eine Möglichkeit folgende Website zu parsen und den Inhalt mit iobroker weiterzuverarbeiten. https://webtermin.medatixx.de/#/8f84af0c-6687-4f48-a9c6-e4d9f71db39d/search
Will so natürlich benachrichtigt werden sobald neue Termine frei sind.
Aber auch nach corona ist das Thema öfter mal nett...
Mit dem parser-Adapter klappt es aufgrund von JavaScript nicht.
Viele Grüße
-
@iobroker_alex sagte in Website mit JavaScript parsen:
Mit dem parser-Adapter klappt es aufgrund von JavaScript nicht.
dann kann man es mit js auch nicht parsen!
dann musst du dir in der Browserkonsole mal heraussuchen, woher diese Daten im Hintergrund geladen werden und versuchen das abzufangen
-
@iobroker_alex sagte in Website mit JavaScript parsen:
Hey, ich suche eine Möglichkeit folgende Website zu parsen und den Inhalt mit iobroker weiterzuverarbeiten. https://webtermin.medatixx.de/#/8f84af0c-6687-4f48-a9c6-e4d9f71db39d/search
Will so natürlich benachrichtigt werden sobald neue Termine frei sind.
Aber auch nach corona ist das Thema öfter mal nett...
Mit dem parser-Adapter klappt es aufgrund von JavaScript nicht.
Viele Grüße
da muss man nix parsen.
wenn man mit axios die requestparameter genau so wie im browser aufbaut,
dann kommt eine schöne json-datei zurückdas ist der request mit get mit allen parametern. du siehst die parameter entsprechen dem web-formular
https://webtermin.medatixx.de/api/8f84af0c-6687-4f48-a9c6-e4d9f71db39d/day?HealthcareServiceId=12&PractitionerId=1&Versicherungsart=Gesetzlich&StartTime=12:00&EndTime=19:00&DaysOfWeek=Mo&DaysOfWeek=Di&DaysOfWeek=Mi&DaysOfWeek=Do&DaysOfWeek=Fr&StartDate=2021-05-21&EndDate=2021-09-30
und als Ergebnis kommt zurück, was den angezeigten Terminvorschlägen entspricht und sich direkt in javascript weiterverarbeiten lässt.
[{"serviceType":null,"schedule":{"reference":null,"display":null},"status":0,"start":"2021-05-25T16:30:00","end":"2021-05-25T16:40:00","resourceType":"Slot","id":null},{"serviceType":null,"schedule":{"reference":null,"display":null},"status":0,"start":"2021-05-25T16:40:00","end":"2021-05-25T16:50:00","resourceType":"Slot","id":null},{"serviceType":null,"schedule":{"reference":null,"display":null},"status":0,"start":"2021-05-25T16:50:00","end":"2021-05-25T17:00:00","resourceType":"Slot","id":null}]
genauere studien kannst du in den developer tools von chrome, firefox oder dem neueren MS edge dir anzeigen lassen
mit F12 -
@oliverio @oliverio mega danke für die Erklärung. Ich habe mit F12 den beschriebenen Teil gefunden. Wenn ich hier jedoch über Javascript ein "Request" mache kommt das selbe heraus wie wenn ich den Link im Browser öffne und dies ist ungleich deinem Ergebnis.
Mein Ergebnis:
["2021-05-25T00:00:00","2021-05-27T00:00:00","2021-05-31T00:00:00","2021-06-01T00:00:00","2021-06-07T00:00:00","2021-06-08T00:00:00","2021-06-10T00:00:00","2021-06-14T00:00:00","2021-06-15T00:00:00","2021-06-17T00:00:00","2021-06-21T00:00:00","2021-06-22T00:00:00","2021-06-24T00:00:00","2021-06-28T00:00:00","2021-06-29T00:00:00","2021-07-05T00:00:00","2021-07-06T00:00:00","2021-07-08T00:00:00","2021-07-12T00:00:00","2021-07-13T00:00:00","2021-07-15T00:00:00","2021-07-19T00:00:00","2021-07-20T00:00:00","2021-07-22T00:00:00","2021-08-16T00:00:00","2021-08-17T00:00:00","2021-08-19T00:00:00","2021-08-23T00:00:00","2021-08-24T00:00:00","2021-08-26T00:00:00","2021-08-30T00:00:00","2021-08-31T00:00:00","2021-09-02T00:00:00","2021-09-06T00:00:00","2021-09-07T00:00:00","2021-09-09T00:00:00","2021-09-13T00:00:00","2021-09-14T00:00:00","2021-09-16T00:00:00","2021-09-20T00:00:00","2021-09-21T00:00:00","2021-09-23T00:00:00","2021-09-27T00:00:00","2021-09-28T00:00:00","2021-09-30T00:00:00"]
Dein Ergebnis:
[{"serviceType":null,"schedule":{"reference":null,"display":null},"status":0,"start":"2021-05-25T16:30:00","end":"2021-05-25T16:40:00","resourceType":"Slot","id":null},{"serviceType":null,"schedule":{"reference":null,"display":null},"status":0,"start":"2021-05-25T16:40:00","end":"2021-05-25T16:50:00","resourceType":"Slot","id":null},{"serviceType":null,"schedule":{"reference":null,"display":null},"status":0,"start":"2021-05-25T16:50:00","end":"2021-05-25T17:00:00","resourceType":"Slot","id":null}]
Wie sieht der Javascript Befehl (oder lieber Blockly) befehl aus um "dein Ergebnis" angezeigt zu bekommen?
Viele Grüße
Alexander -
@iobroker_alex sagte in Website mit JavaScript parsen:
@oliverio @oliverio mega danke für die Erklärung. Ich habe mit F12 den beschriebenen Teil gefunden. Wenn ich hier jedoch über Javascript ein "Request" mache kommt das selbe heraus wie wenn ich den Link im Browser öffne und dies ist ungleich deinem Ergebnis.
Mein Ergebnis:
["2021-05-25T00:00:00","2021-05-27T00:00:00","2021-05-31T00:00:00","2021-06-01T00:00:00","2021-06-07T00:00:00","2021-06-08T00:00:00","2021-06-10T00:00:00","2021-06-14T00:00:00","2021-06-15T00:00:00","2021-06-17T00:00:00","2021-06-21T00:00:00","2021-06-22T00:00:00","2021-06-24T00:00:00","2021-06-28T00:00:00","2021-06-29T00:00:00","2021-07-05T00:00:00","2021-07-06T00:00:00","2021-07-08T00:00:00","2021-07-12T00:00:00","2021-07-13T00:00:00","2021-07-15T00:00:00","2021-07-19T00:00:00","2021-07-20T00:00:00","2021-07-22T00:00:00","2021-08-16T00:00:00","2021-08-17T00:00:00","2021-08-19T00:00:00","2021-08-23T00:00:00","2021-08-24T00:00:00","2021-08-26T00:00:00","2021-08-30T00:00:00","2021-08-31T00:00:00","2021-09-02T00:00:00","2021-09-06T00:00:00","2021-09-07T00:00:00","2021-09-09T00:00:00","2021-09-13T00:00:00","2021-09-14T00:00:00","2021-09-16T00:00:00","2021-09-20T00:00:00","2021-09-21T00:00:00","2021-09-23T00:00:00","2021-09-27T00:00:00","2021-09-28T00:00:00","2021-09-30T00:00:00"]
Dein Ergebnis:
[{"serviceType":null,"schedule":{"reference":null,"display":null},"status":0,"start":"2021-05-25T16:30:00","end":"2021-05-25T16:40:00","resourceType":"Slot","id":null},{"serviceType":null,"schedule":{"reference":null,"display":null},"status":0,"start":"2021-05-25T16:40:00","end":"2021-05-25T16:50:00","resourceType":"Slot","id":null},{"serviceType":null,"schedule":{"reference":null,"display":null},"status":0,"start":"2021-05-25T16:50:00","end":"2021-05-25T17:00:00","resourceType":"Slot","id":null}]
Wie sieht der Javascript Befehl (oder lieber Blockly) befehl aus um "dein Ergebnis" angezeigt zu bekommen?
Viele Grüße
Alexanderich gehe davon aus, das der server noch logikprüfungen macht.
wenn du am 22.5. eine abfrage mit startdatum 21.5. macht, dann kommt kein Ergebnis zurück.Ich habe gerade die Abfrage nochmal mit angepassten parametern durchgeführt und das json kommt an
die liste die sonst da zurückkommt, ist die information, wie der kalender eingefärbt werden muss. also die Tage an denen es überhaupt freie termine gibt.probiere einfach mal ein wenig herum. wenn man zu solchen apis keine doku hat, muss man per reengineering versuchen auf die logik zu schließen.