(gelöst) Suche etwas ähnliches wie Curl, allerdings für Seite mit JS

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
Benutzeravatar
SirArthur
Beiträge: 278
Registriert: 11.07.2017 17:39:12

(gelöst) Suche etwas ähnliches wie Curl, allerdings für Seite mit JS

Beitrag von SirArthur » 15.01.2020 13:12:47

Hallo Debianer,

ich habe mir ein kompaktes Status Panel mit Conky gebastelt, mit allerhand Anzeigen wie zB die Auslastung meiner UPS. Sehr praktisch.
Die Daten kriege ich auf verschiedenste Weisen.

Jetzt habe ich mir einen neuen WLAN hotspot zugelegt (M7350 von TP-Link) und würde mir von der Seite, die aufscheint, wenn ich 192.168.0.1.im FF eintippe, gerne ein oder zwei Werte auf das Conky Panel legen. SSH oä kann der nicht, Zugriff geht nur über Browser oder eine Android App.
Mein erster Gedanke war dann Curl und ich habe versucht, die richtigen Cookies mitzuschicken (die Seite verlangt ein Passwort) um die Daten in ein File zu bekommen und das gewünschte mit sed zu extrahieren und auf das Panel zu legen.
Nach langem rumprobieren mit curl (und wget und lynx....) habe ich dann bemerkt, daß immer nur die pure html Seite ankommt, ohne die Werte, was anscheinend daran liegt, daß da ein paar Java Scripte ablaufen, die die Werte anzeigen...

Gibt es ein schlankes Tool fürs Terminal, mit dem das möglich wäre? Meine Java Kenntnisse sind leider gleich null, überhaupt muss ich bei vielem, was Scripte betrifft das Internet bemühen (was vor allem bei sed sehr spannend sein kann :-D ).
Zuletzt geändert von SirArthur am 15.01.2020 22:48:49, insgesamt 1-mal geändert.

Benutzeravatar
Lord_Carlos
Beiträge: 5578
Registriert: 30.04.2006 17:58:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Dänemark

Re: Suche etwas ähnliches wie Curl, allerdings für Seite mit Java

Beitrag von Lord_Carlos » 15.01.2020 13:26:25

Java ist nicht Java Script. Kann leicht verwirrend sein wenn du beide Begriffe fuer letzteres verwendest. Wenn es schnell gehen soll schreib einfach JS ;-)

Hast du mal im Browser geguckt wo die Javascript Methode ihre Daten bekommt. Kann ja sein das es einfach eine yaml oder html Datei naechlaedt die du selbst auch mit curl leicht bekommen kannst.

Code: Alles auswählen

╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!

Benutzeravatar
bluestar
Beiträge: 2346
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: Suche etwas ähnliches wie Curl, allerdings für Seite mit Java

Beitrag von bluestar » 15.01.2020 13:54:33

SirArthur hat geschrieben: ↑ zum Beitrag ↑
15.01.2020 13:12:47
Jetzt habe ich mir einen neuen WLAN hotspot zugelegt (M7350 von TP-Link) und würde mir von der Seite, die aufscheint
Ja das Ding kenne ich und ja da kann man XML-Daten abgreifen.... Musst du nur schauen, welche Daten dein Browser lädt, während du auf dem Web-IF des Hotspots bist.

uname
Beiträge: 12072
Registriert: 03.06.2008 09:33:02

Re: Suche etwas ähnliches wie Curl, allerdings für Seite mit Java

Beitrag von uname » 15.01.2020 16:27:34

Sehr einfach kannst du über Firefox -> F12 -> Netzwerkanalyse (laden) sehen was so alles übertragen und geladen wird.
Für einen Netzwerküberprüfung würde ich eher Ziele im Internet verwenden. Wenn der Router funktioniert bedeutet es nämlich nicht, dass das Internet funktioniert.

Benutzeravatar
SirArthur
Beiträge: 278
Registriert: 11.07.2017 17:39:12

Re: Suche etwas ähnliches wie Curl, allerdings für Seite mit Java

Beitrag von SirArthur » 15.01.2020 20:09:31

Danke für die Antworten, das hat mich schon ein gutes Stück weiter gebracht. Ein kleines Stück (wie ich hoffe) fehlt mir allerdings noch....

Ich habe im FF unter "Network" eine Datei namens 192.168.0.1/cgi-bin/web_cgi finden können, in der alle Daten drinstehen.
Je nachdem, was ich im Interface anklicke, ist der Inhalt ein bisschen anders, aber am Main Screen von TP-Link steht dort eben alles.

Wenn ich diese Datei per Rechstklick in einem neuen Tab öffne, steht da drin unter Anderem so etwas wie

Code: Alles auswählen

"battery": { "connected": true, "charging": false, "voltage": 76 },
Eine ziemlich lange Wurst.
Im "Response" Reiter unter "JSON" im Firefox steht da auch alles fein säuberlich geordnet drin, schöner gehts nicht.

Wenn ich die URL der Datei einfach so in einem neuen Tab aufrufe, steht dort "Nothing".
Das war auch das erste Ergebnis, daß ich mit 'curl 192.168.0.1/cgi-bin/web_cgi' hatte.

Jetzt versuche ich, die "Params" mit curl abzuschicken, bekomme aber nie das gewünschte Ergebnis.
Um genau zu sein bekomme ich als Antwort '{"result": 1 }', was in der langen Wurst im Firefox aber gar nicht vorkommt, da steht ganz am Schluss .....'"result": 0}'.
Also habe ich so ziemlich alles, was im Firefox steht, nachgebaut, den Header, die Cookies, Request method: POST und schicke das alles mit curl ab...mit dem selben Ergebnis.

So sieht das zur Zeit aus:

Code: Alles auswählen

curl -v -X POST -H ~/tp_link_header.txt -j ~/tp_link_cookie.txt -d {"token":"h7T7wBuykUf44kT8","module":"status","action":0} http://192.168.0.1/cgi-bin/web_cgi
Was ich mich frage...Geht das so mit curl überhaupt?

thoerb
Beiträge: 1677
Registriert: 01.08.2012 15:34:53
Lizenz eigener Beiträge: MIT Lizenz

Re: Suche etwas ähnliches wie Curl, allerdings für Seite mit Java

Beitrag von thoerb » 15.01.2020 22:33:42

Keine Ahnung, was du da genau vor hast, aber vielleicht hilft das weiter:

https://stackoverflow.com/questions/195 ... unix-tools

Benutzeravatar
SirArthur
Beiträge: 278
Registriert: 11.07.2017 17:39:12

Re: Suche etwas ähnliches wie Curl, allerdings für Seite mit Java

Beitrag von SirArthur » 15.01.2020 22:48:29

Es klappt. Bei den Params haben außen rum zwei ' ' gefehlt, das war alles. Ich hab leider keine Ahnung von programmieren und muss mir alles irgendwie zusammenschustern, da passiert sowas leider manchmal :oops:

@thoerb Deinen Link muss ich mir auch noch genauer ansehen, was da momentan daherkommt ist zwar was ich wollte, aber ziemliche Grütze :D

Danke an Alle für die Hilfe :-)

So kriegt man das auch ohne Cookies / einloggen:

Code: Alles auswählen

curl -X POST -d '{"module":"status","action":0}' http://192.168.0.1/cgi-bin/web_cgi

Antworten