Java:
Webseite herunterladen

How to:

Hier ist ein einfacher Weg, um mit Java eine Webseite herunterzuladen:

import java.io.*;
import java.net.URL;

public class WebPageDownloader {
    public static void main(String[] args) {
        String webPageUrl = "http://example.com";
        String outputPath = "downloaded_page.html";

        try (InputStream inputStream = new URL(webPageUrl).openStream();
             FileOutputStream outputStream = new FileOutputStream(outputPath)) {
             
            inputStream.transferTo(outputStream);
            System.out.println("Webseite wurde erfolgreich heruntergeladen!");
        } catch (IOException e) {
            System.out.println("Fehler beim Herunterladen der Webseite: " + e.getMessage());
        }
    }
}

Ausgabe:

Webseite wurde erfolgreich heruntergeladen!

Deep Dive

Das Herunterladen von Webseiten ist nicht neu. Früher nutzte man Tools wie wget oder curl. Programmiersprachen haben dann eigene Methoden entwickelt, um dieses Vorgehen zu vereinfachen.

In Java gibt es verschiedene Wege, um eine Webseite herunterzuladen. Die obige Methode verwendet java.net.URL und java.io.InputStream, was einfach und direkt ist. Aber man könnte auch HttpClient aus Java 11 verwenden, der eine modernere und flexiblere API bietet:

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
        .uri(URI.create("http://example.com"))
        .build();

client.sendAsync(request, HttpResponse.BodyHandlers.ofFile(Paths.get("downloaded_page.html")))
        .thenApply(HttpResponse::body)
        .thenAccept(System.out::println)
        .join();

Egal, welche Methode man wählt, Fehlerbehandlung ist wichtig. Verbindungsfehler, Zeitüberschreitungen und fehlerhafte URLs sind häufige Probleme.

See Also