HTTP Mit JavaScript erzeugte dynamische Webseite auslesen und nach einem Schlüsselwort durchsuchen

Ernesto95

Bekanntes Mitglied
Moin !

Ich habe hier ein Problem bei dem ich nicht weiterkomme.

Ich möchte über Java automatisiert eine Website auslesen um den Status von Schiffen zu prüfen. Ich möchte die Seite nicht anzeigen lassen, sondern lediglich nach Schlüsselwörtern durchsuchen um den Status zu bekommen. Im Idealfall bräuchte ich also einfach einen String der den kompletten Code der Seite beinhaltet. Das Problem ist, der für mich entscheidende Abschnitt ist kein statischer Code, sondern wird dynamisch über die Übergabe einer ID in der URL per JavaScript nachgeladen.

Die Quellcode Anzeige in meinem Firefox zeigt den für mich entscheidenden Part nicht an, und alles was ich bis dato über die JafaFX WebView / WebEngine oder die HttpClient Library von Java11 probiert habe zeigt auch immer nur den statischen, aber nicht den dynamisch per JavaScript nachgeladenen Teil an.

Gibt es irgendeine Möglichkeit an die Daten in der Tabelle zu kommen ?

Um diese Seite geht es: https://coast.hhla.de/report?id=Standard-Report-Segelliste
 
Ganz generell:

a) verwende eine API, wenn es eine solche gibt,
b) Du kannst die Requests nachbauen oder aber
c) Du verwendest eine Browser-Implementierung/-Automatisierung. Selenium kann das.

In Deinem Fall scheint eine Mischung aus b) und a) möglich zu sein. Heißt: es gibt eine API, die scheint aber nicht dokumentiert, daher musst Du die Requests nachbauen. Du kannst über die Entwicklerkonsole des Browsers im Netzwerk-Tab die Anfragen leicht nachvollziehen. Der Server liefert ein JSON-Dokument mit den Daten zu erhalten. Du solltest Dich aber vorher erkundigen, ob die Nutzung auf diese Weise in Ordnung ist (darum schreibe ich hier die URL auch nicht rein -> selbst rausfinden).
 
Danke für deine Antwort !

Ich gehe mal stark davon aus das jeglicher automatisierter Zugriff verboten ist, auch da keine öffentliche API vorliegt. Aus dem Grunde hoffte ich das es irgendwie möglich ist die Seite einfach nur aufzurufen, den kompletten Quellcode der angezeigten Daten als eine String Variable zu erhalten und dann eine Klasse zu schreiben die aus dem String die benötigten Daten extrahiert.
 
Danke für deine Antwort !

Ich gehe mal stark davon aus das jeglicher automatisierter Zugriff verboten ist, auch da keine öffentliche API vorliegt. Aus dem Grunde hoffte ich das es irgendwie möglich ist die Seite einfach nur aufzurufen, den kompletten Quellcode der angezeigten Daten als eine String Variable zu erhalten und dann eine Klasse zu schreiben die aus dem String die benötigten Daten extrahiert.
Das würde z. B. mit Selenium funktionieren.
 
Danke für eure Rückmeldungen. Aber Selenium wie auch PlayWright sind so wie ich das sehe Browser Plugins. Ich möchte aber die Seite direkt über meine Java App aufrufen und dann über Java irgendwie an den kompletten Quellcode als String kommen den ich dann zerlegen und mir die benötigten Daten ziehen kann.
 

Zurück
Oben