• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

HTML-Inhalt mit Javascrpt versteckt?

ramin

New member
Hallo! Zunächst: ich bin Physiklehrer und habe nicht soviel Ahnung von Web-Programmierung. Bitte daher im Vorfeld schon um Entschuldigung.

Das Vertretungsplan-Programm stellt den Vertretungsplan online zur Verfügung; allerdings möchte ich das für unsere Schulhomepage anpassen und deshalb den Inhalt extrahieren. Wenn ich allerdings den Seitenquelltext öffne, finde ich keinen HTML-Inhalt sondern nur Javascrpt.
Meine Frage: ich würde gerne den HTML-Teil saugen, damit ich diesen auswerten und in angepasster Form auf der Schulhomepage ausgeben kann. Die $_Post-Einträge sind dabei wichtig.

https://nessa.webuntis.com/WebUntis...hagen&monitorType=subst&format=Homepage_Tag_1

Hat jemand einen Tipp?
Das habe ich schon erfolglos getestet - "Zugriff verweigert"

PHP:
<?php
$ch = curl_init("https://nessa.webuntis.com/WebUntis/monitor"); // cURL ínitialisieren
curl_setopt($ch, CURLOPT_HEADER, 0); // Header soll nicht in Ausgabe enthalten sein
curl_setopt($ch, CURLOPT_POST, 1); // POST-Request wird abgesetzt
curl_setopt($ch, CURLOPT_POSTFIELDS, 'school=gym-petershagen&monitorType=subst&format=Homepage_Tag_1'); // POST-Felder festlegen, die gesendet werden sollen
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_exec($ch); // Ausführen
curl_close($ch); // Objekt schließen und Ressourcen freigeben
?>

Viele Grüße
Ramin
 
Zuletzt bearbeitet von einem Moderator:
Hi!
Es gibt zwei Wege wie die Daten auf den Client gelangen: im Rahmen der "normalen" Request-Response-Abfolge beim initialen Laden der Webseite oder nachträglich über eine AJAX-Request-Response-Abfolge.
Beides kommt aber irgend wo aus dem Backend. Wenn du das mit PHP (weil du PHP zeigst) lösen willst, musst du direkt an das Backend gehen, Datenbank oder was auch immer, weil PHP auf dem Server ausgeführt wird. Dieses geht natürlich nur, wenn die Maschine an die Quelle dran kommt und nicht mit Zugriffsfehler abgewiesen wird.

Möchtest du es mit JS (weil du hier im JS Forum fragst) laden, musst du den Request machen, den der Browser auch auf der Originalseite macht, weil JS im Browser auf dem Client ausgeführt wird. Und da die Tabelle hinter deinem Beispiellink im Quelltext nicht zu sehen ist, wird sie zwangsläufig per AJAX geladen. Du gehst also jetzt in den ganzen JS Quellcode Dateien (moment.min.js, wrapper.js, main.js usw.) auf Suche nach dem entscheidenden Request. Und den führst du dann auf der gewünschten Zielseite aus. Oder du fragst den Entwickler des Codes oder schaust in der Browserkonsole (F12) wann da was von wo geladen wird.
Wichtig ist hier noch zu sagen, dass das Ganze im Gegensatz zur obigen PHP-Lösung nur innerhalb der SOP funktioniert, weil du hier einen Zugriffsfehler erwähnst.

PHP: serverseitige Ausführung, Datenbankzugang und -berechtigung sind zwingend, Browser und SOP spielen keine Rolle
JS: clientseitige Ausführung, SOP ist zwingend, Datenbank spielt keine Rolle

Dein PHP curl Code ist eine Mischung. Es läuft serverseitig und verhält sich gegen das Ziel wie ein Browser. Wenn das kein Zugriff hat musst du mit dem Admin des Zielservers sprechen, wie der Zugriff gewährt werden kann.
 
Hallo Mik,
danke für die Antwort. Ich habe mein Problem noch nicht verständlich formuliert:
ich habe keinen Zugriff auf den Server, sondern nur auf die ausgelieferte Seite. In dieser finde ich mich allerdings nicht zurecht, da ich weder HTML oder verständliche jSON-Requests finde, sondern nur kryptisches Javascript, das sicherlich die Seite irgendwie aufbaut. Und da liegt jetzt genau der Haken: Die Schulhomepage möchte den HTML-Inhalt der Seite per PHP laden und ich möchte den dann verarbeiten - letzteres ist kein Problem, wenn ich an die Seite in Ihrer HTML-Struktur komme. Hast du eine Idee?

Danke!
 
Genau das habe ich beantwortet: suchen oder den Entwickler fragen. Mit Hilfe der Konsole sollte das aber schnell zu finden sein.

da ich weder HTML oder verständliche jSON-Requests finde, sondern nur kryptisches Javascript
In dem gezeigten Link ist zumindest schon mal nichts Kryptisches. Wenn etwas wirklich kryptisch Aussehendes kommt, muss das eben entschleiert werden, wirklich verschlüsselt im Wortsinn ist da nichts, sonst könnte der Browser es nicht darstellen.

Sonst musst du mal an einem Beispiel zeigen, was du gefunden hast und als "kryptisches Javascript" bezeichnest.
 
Zurück
Oben