Java HTML einer Website auslesen liefert nur head?

... komplette Frage anzeigen

2 Antworten

Grundsätzlich (oder so ähnlich):

 
    int anfang = quellcode.indexOf("mein-eindeutig-identifizierbarer-Code-im-Text" );
    int ende = quellcode.indexOf("mein-eindeutig-identifizierbarer-Code-im-Text" );
    gesuchterText = quellcode.substring(anfang, ende);

Abbberrrr,
wenn man z.b. den Body haben möchte kann es auch vorkommen, dass der Tag noch andere Parameter hat und so nicht mit <body> gefunden werden kann.

Du könntest dich auch mal über https://docs.oracle.com/javase/7/docs/api/javax/swing/text/html/HTMLDocument.html informieren, vlt. hilft das auch weiter

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von DeuShades
03.05.2016, 19:17

Weiß nicht, ob ich dich missverstehe, aber ich kann den quellcode noch nicht durchsuchen, da mein Output eben den Teil des Quellcodes, den ich brauche gar nicht enthält, sondern der body einfach leer ist, was er aber eigentlich nicht sein sollte.

0

manche Teile des HTMLtexts weggelassen

Die Ursache hierbei könnte daran liegen, dass der Body erst via Javascript generiert wird, jedoch beim lesen der URL kein JavaScript ausgeführt wird (womit auch der Body nicht generiert wird).

Genauso sind auch andere Dinge wie iFrames manchmal davon betroffen. 

In wieder anderen Konstellationen kommuniziert die Website zuerst mit dem Browser (und auch wieder via Javascript) mit dem Host, wodurch z.B. die Website anders gestaltet wird. 

D.h. mit Standard-Java wird das durchaus sehr schwierig. Entsprechend gibt es jedoch Java-Librarys die es dir möglich machen:

z.B.: Apache HTTPComponents oder Selenium-Browser.

Ich würde eher zur Selenium-Library raten, da ich bei HTTPComponents leider auch schon relativ früh an die Grenzen gestoßen bin.

Antwort bewerten Vielen Dank für Deine Bewertung