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ではページのダウンロードと処理を一行で行えるので、高度な処理が必要な場合に非常に便利です。