Mit Java relevanten Text einer Webseite anzeigen lassen
Hallo!
Ist es möglich sich mit Java oder irgendeinem bereits entwickelten Project (z.B. von sourceforge) den relevanten Text einer Seite herauszufiltern, ähnlich wie es Suchmaschinen tun?
hab mal schnell ein kleine "main-Klassen-Programm" zusammengeklickt, was noch mal verdeutlicht, was ich meine:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
StringBuilder sb = new StringBuilder();
URL url;
try {
url = new URL(
"http://www.tagesschau.de/aktuell/meldungen/0,,OID6357044_REF1,00.html");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setUseCaches(false);
if (conn.getResponseCode() != HttpURLConnection.HTTP_OK) {
System.out.println(conn.getResponseMessage());
} else {
BufferedReader buf = new BufferedReader(new InputStreamReader(
conn.getInputStream()));
String urlText = null;
while ((urlText = buf.readLine()) != null) {
sb.append(urlText + "\n");
}
// HIER SOLL DER RELEVANTE TEXT RAUSGEFILTERT WERDEN:
System.out.println(sb);
}
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Mit Dank für Eure Hilfe im Voraus!
Gruß!
John
Antwort schreiben
Antwort 1 von JohnArenque vom 30.01.2019, 16:09 Options
Ach so... mit relvantem Text meine ich ca. das, was man sieht, wenn man die Seite betrachtet... (bei google wird ja auch manchmal was aus den Seitenspalten oder dem Menü gefunden)
Antwort 2 von JohnArenque vom 30.01.2019, 16:18 Options
Und nach Ausschlusskriterien verschiedene Tags und deren Inhalt auszuschließen... das ist mir zu viel Hick-Hack... das wird nie richtig sauber und ist ein Haufen Arbeit...
Antwort 3 von JohnArenque vom 31.01.2019, 14:10 Options
Mir würde schon ein tip in die richtige Richtung reichen... finde einfach nix brauchbares im internet...
Dachte zuerst bei den web-robotern müsste ja sowas dabei sein... da gibt's zum Beispiel JSpider... aber das Paket ist so umfangreich und die Dokumentation bezieht sich fast ausschließlich auf die Funktion "Durchforsten des Internets" , da das richtige rauszufiltern ist für mich extrem schwierig...
Dann dachte ich, ich schau mal bei 'ner browser-komponente für java... also pakete mit denen man webbrowser mit java coden kann... aber da ergab sich das gleiche Problem... -> zu umfangreich und mein spezieller Anwendungsbereich irgendwo versteckt... :-S
Wäre sehr nett, wenn sich irgendjemand meines Anliegen annehmen würde...
Gruß!
John
Antwort 4 von JohnArenque vom 31.01.2019, 18:55 Options
hab's rausgefunden:
Pattern htmlTagPattern = Pattern.compile("<[^>]*>");
String[] preText = htmlTagPattern.split(sb);
for (int i = 0; i < preText.length; i++) {
Pattern leerPattern = Pattern.compile("^[\t\n\r\f' '.-/,;*]*$");
Matcher m = leerPattern.matcher(preText);
if (!m.find())
System.out.println(preText);
}