Mit Java eine Website auslesen?
Hallo, Ich suche eine Methode in Java, welche Texte von Internetseiten auslesen kann (z.B. von Zeile xx bis xy) und diese in einem String abspeichert. Das Programm soll aber nicht den Quelltext auslesen, sondern den "fertigen" Text.
3 Antworten
Wäre das nicht einfacher mit JavaScript? Da gibt es ja Parameter wie innerHTML etc.
Die schwierigkeit dabei ist ja, dass du Teile des gerenderten Textes brauchst. An diesen kommst du am Ende aber auch nur über nen entsprechenden Parser, oder wenn du den String per Regex durchsuchst.
Hier mal ein kleines Beispiel: http://stackoverflow.com/questions/1359689/how-to-send-http-request-in-java/1359702#1359702
Das sollte dir weiterhelfen ;) Grüße - Morph 8)
Das ist ein nicht triviales Vorgehen. Willst oder musst Du es komplett selbst (d.h. nur mit den Mitteln des Java SDK) lösen? oder kannst Du 3rd Party Frameworks einsetzen? Falls ersteres, dann musst Du erst mal einen HTTP-Request absetzen (Package java.net), dann das Ergebnis lesen und verarbeiten. Die Verarbeitung kannst Du bei sauberem XHTML mit einem XML-Parser machen (DOM oder SAX), bei nicht validem XML musst Du den Text selbst parsen (z.B. mit Regular Expressions). Falls Du Bibliotheken verwenden darfst, schau Dir mal den HTTP Client von Apache an (http://hc.apache.org/httpclient-3.x/), damit kannst Du schon mal einfach die Seite einlesen. Das Problem des Parsens besteht weiterhin und kann gelöst werden wie oben beschrieben.