Text einer remote-HTML Seite auslesen

Status
Nicht offen für weitere Antworten.

orkano

Neues Mitglied
Hi Ihr!

Habe folgendes Szenario: Ich habe eine Website (sagen wir einfach mal string.php), die bei Aufruf genau eine Zeile mit genau einem String ausgibt. Sieht vom HTML-Code her dann so aus:


Code:
<html>
    <head>
        <title>IPtoDate</title>
    </head>
    <body>HierIstDerGenerierteString</body>
</html>


Nun habe ich ein Java Programm, welches diese Seite aufrufen und anschließend den String in eine Variable speichern soll. Leider habe ich keine Ahnung wie das gehen könnte, denn mit der Beschreibung des HTMLReaders
komme ich nicht klar (keine Ahnung wie der eine Seite auslesen kann).

Habt Ihr eine Idee wie ich mein Problem umsetzen könnte?
Danke schonmal für eure Mühe!

Gruß orkano
 
Also, wenn du dir sicher bist, dass es immer genau so aussieht, würd ichs ganz einfach angehen.

Such einfach im String nach "<body>" und "</body>" per String#indexOf und dann String#substring zum Ausschneiden.

Klar ist das hässlich, aber wenns wirklich nur darum geht, was solls.
 
Es geht wohl mehr um das Laden vom Server, oder? Etwa so:

Code:
import java.io.*;
import java.net.*;

public class HTMLRead {

	public static void main(String[] args) throws Exception {
		String html=read(new URL("http://www.java-forum.org/de/topic62561_text-einer-remote-html-seite-auslesen.html"));
		System.out.println(html);
	}
	
	public static String read(URL url) throws Exception {
		URLConnection conn = url.openConnection();
	    conn.setDoOutput(true);
	    conn.setDoInput(true);
	    conn.setUseCaches(false);
	
	    char[] buffy=new char[1000];
	    StringBuffer html=new StringBuffer();
	
	    InputStream in=conn.getInputStream();
	    InputStreamReader reader=new InputStreamReader(in);
	
	    int len=0;
	    do {
	       len=reader.read(buffy, 0, buffy.length);
	       if (len!=-1) {
	          html.append(buffy, 0, len);
	       }
	    } while (len!=-1);
	
	    reader.close();
	    in.close();
	    return html.toString();
	}

}
[/code]
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben