JavaのURLクラスを使ってWebページを読み込む方法と重要なステップ
java.netパッケージに含まれるURLクラスは、Uniform Resource Locator(URL)を表すクラスです。このクラスを使用することで、World Wide Web上のリソース(ファイル、ディレクトリ、参照など)を指し示すことができます。
URLクラスには複数のコンストラクタが用意されており、そのうちの一つはString型のパラメータを受け取り、URLオブジェクトを生成します。
また、openStream()メソッドを呼び出すと、現在のオブジェクトが表すURLへの接続が開かれ、InputStreamオブジェクトが返されます。このInputStreamを使えば、URLからデータを読み取ることが可能です。
Webページからデータを読み取る手順
URLクラスを使用してWebページからデータを読み込むには、以下の手順に従います。
- 目的のWebページのURLを引数として渡し、java.net.URLクラスをインスタンス化します。
- openStream()メソッドを呼び出し、InputStreamオブジェクトを取得します。
- 取得したInputStreamオブジェクトを引数として渡し、Scannerクラスをインスタンス化します。
サンプルコード
import java.io.IOException;
import java.net.URL;
import java.util.Scanner;
public class ReadingWebPage {
public static void main(String args[]) throws IOException {
// URLクラスのインスタンス化
URL url = new URL("https://www.something.com/");
// 指定したページの内容を取得
Scanner sc = new Scanner(url.openStream());
// 結果を保持するためStringBufferをインスタンス化
StringBuffer sb = new StringBuffer();
while(sc.hasNext()) {
sb.append(sc.next());
//System.out.println(sc.next());
}
// StringBufferオブジェクトから文字列を取得
String result = sb.toString();
System.out.println(result);
// HTMLタグを除去
result = result.replaceAll("<[^>]*>", "");
System.out.println("Contents of the web page: "+result);
}
}実行結果
<html><body><h1>Itworks!</h1></body></html> Contents of the web page: Itworks!
このように、URLクラスとopenStream()メソッドを組み合わせることで、わずか数行のコードでWebページの内容を取得できます。取得したHTMLから正規表現を使ってタグを除去すれば、テキストコンテンツだけを抽出することも可能です。なお、実際の開発ではtry-with-resources文を使ってリソースを確実にクローズすることや、例外処理を適切に行うことが推奨されます。
-
Java 9における@Deprecatedアノテーションの改善点とは?新要素「since」「forRemoval」を徹底解説
@Deprecatedアノテーションとはクラス、メソッド、フィールドなど、プログラム内のあらゆる要素に付与できる@Deprecatedアノテーションは、「その要素はもはや使用すべきではない」ことを示すためのものです。要素が非推奨とされる主な理由は以下の通りです。使用すると危険であり、エラーを引き起こす可能性がある将来のバージョンで互換性がなくなる可能性がある将来のバージョンで削除される可能性があるより優れた、効率的な代替手段がすでに提供されているJava 9で追加された2つの新しい要素Java 9では、@DeprecatedアノテーションにsinceとforRemovalという2つの新しい属性
-
JavaにおけるCursorクラスの役割とは?マウスカーソル制御の基本を解説
JavaのCursorクラスとはCursorクラスは、Objectクラスのサブクラスであり、画面上のポイント(指し示す位置)やインジケーター(表示標識)として定義されます。ユーザーがマウスを使ってシステムへの入力を選択・操作する際に、その位置を視覚的に示す重要な役割を担っています。GUIアプリケーションでは、状況に応じてカーソルの形状を変えることで、ユーザーに対して直感的なフィードバックを提供できます。例えば、処理中であることを伝える砂時計型のカーソルや、クリック可能な要素を示す手型のカーソルなどが代表的な例です。利用可能なカーソルの種類Cursorクラスには、あらかじめ定義されたさまざまなカ