ウェブページのダウンロード

Java:
ウェブページのダウンロード

How to: (やり方:)

以下はJavaでWebページをダウンロードするコード例です。必要なライブラリをインポートしてURLからコンテンツを読み込む簡単な手順を用います。

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

public class WebPageDownloader {

    public static void main(String[] args) {
        String webPageUrl = "http://example.com";
        String fileName = "downloaded_page.html";
        
        try (BufferedReader reader = new BufferedReader(new InputStreamReader(new URL(webPageUrl).openStream()));
             BufferedWriter writer = new BufferedWriter(new FileWriter(fileName))) {
            
            String line;
            while ((line = reader.readLine()) != null) {
                writer.write(line);
                writer.newLine();
            }
            System.out.println("Web page downloaded to " + fileName);
        } catch (IOException e) {
            System.err.println("An error occurred: " + e.getMessage());
        }
    }
}

実行結果:

Web page downloaded to downloaded_page.html

Deep Dive (詳細解説)

ダウンロードしたWebページは初めてHTMLが誕生した1990年代から変わらぬ基本ですが、方法は進化しました。初期は単純なHTTPリクエストでした。現在では、JavaではHttpURLConnectionやApacheのHttpClient、さらにはJsoupのようなライブラリを使用してHTMLの解析まで行うことが可能です。

URLConnectionはJavaの標準ライブラリで提供されており、シンプルな使い方は上の例に示す通りです。しかし、URLConnectionは古めのAPIであり、使いにくい面もあります。そのため、より現代的かつ機能的なHttpClientをJava 11から標準で使用することができます。

Jsoupは、HTMLをパースしてDOM操作を可能にする強力なライブラリです。Webスクレイピングでよく使われます。Jsoupではページのダウンロードと処理を一行で行えるので、高度な処理が必要な場合に非常に便利です。

See Also (参考資料)