Java – HTML-Code über URL auslesen
Eine sehr einfache Aufgabe: Man soll den HTML-Code von der URL http://xyz.com/helloWorld.htm auslesen.
In Java gibt es sehr viele Möglichkeiten diese Aufgabe zu bewältigen. Vor allem die Klassen URLConnection und URL bieten sich hier an. Während bei URLConnection die Methode getContent() leider sehr umständlich zu handhaben ist, lässt sich die Aufgabe mit der Klasse URL schnell lösen:
import java.io.*; import java.net.*; import java.util.*; public String fetchPage(String url) {URL u; InputStream is = null; StringBuilder sb = new StringBuilder(); try { URL u = new URL(url); is = u.openStream(); DataInputStream dis = new DataInputStream(new BufferedInputStream(is)); String s; while ((s = dis.readLine()) != null) { sb.append(s); sb.append("\n"); } } catch (MalformedURLException ex) { ex.printStackTrace(); } catch (IOException ex) { ex.printStackTrace(); } finally { try { is.close(); } catch (IOException ioe) { // ignore } } // try return sb.toString(); } // fetchPage
Die Klasse Scanner erlaubt es hier nochmal etwas Code einzusparen. Somit lässt sich der HTML-Code noch etwas einfacher auslesen:
import java.io.*; import java.net.*; import java.util.*; public String fetchPage(String url) { StringBuilder sb = new StringBuilder(); try { Scanner scanner = new Scanner(new URL(url).openStream()); while (scanner.hasNextLine()) { sb.append(scanner.nextLine() + "\n"); } scanner.close(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return sb.toString(); } // fetchPage