Javaでjsoupを使ってWebスクレイピングをする方法

Java

今回の記事ではJavaでWebスクレイピングをする方法について解説していきます。
Javaでスクレイピングをする際には「jsoup」というライブラリを使用します。

jsoupをEclipseで使用する方法やそもそもスクレイピングとはなんなのかということについて解説していきますので、是非最後まで読んでいってください。

スクレイピングとは

まず本題に入る前に少しだけスクレイピングとはなんなのかということについて解説していきます。

スクレイピングとはWebサイトから特定の情報を抜き出してDBに保存したりデータ解析をする技術のことです。
スクレイピングするプログラミング言語としてはPythonが定番ですが、実はJavaでもjsoupを利用することでスクレイピングをすることができます。

スクレイピングする際の注意点

スクレイピングはスクレイピング先のサーバーにアクセスして情報を取得します。
そのため一度に大量のリクエストを送る処理をすると相手のサーバーに負担をかけることになってしまいます。

スクレイピングをする際は対象となるサイトの利用規約などを読んで、スクレイピングをしても良いのかどうかしっかりと確認しましょう。
またしても良い場合でも、負担をかけるような処理は避けるようにしましょう。

Javaでスクレイピングする

スクレイピングについて簡単に理解したところで実際にスクレイピングしていきましょう!

jsoupの準備

Javaでスクレイピングをする際にはjsoupというライブラリを利用します。
公式サイトからjarファイルをダウンロードします。

公式サイトにアクセスしたら「Getting started」の下にある「Download」をクリックします。

次に「jsoup-1.14.3.jar」をクリックするとjarファイルがダウンロードされます。

Eclipseに追加

jarファイルをダウンロードしたら次にEclipseで利用できるようにします。
Eclipseを起動し、利用するプロジェクトを「右クリック」します。
「ビルド・パス」にカーソルを合わせ、「外部アーカイブの追加」を選択します。

先ほどダウンロードしたjsoupのjarファイルを選択し、「Open」を押します。

プロジェクト内の「参照ライブラリー」に選択したjarファイルが表示されていたら、ひとまず設定は完了です。

スクレイピングするプログラムの作成

ここまで準備が完了したら、次はプログラムを作成します。
今回は当ブログのトップページから記事のタイトルを取得するプログラムを作成します。

プログラム

次のプログラムが実際のプログラムになります。

import java.io.IOException;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class SampleCode {

	public static void main(String[] args) throws IOException {

		// 当ブログのトップページにGETリクエストを送る
		Document doc = Jsoup.connect("https://uha-blog.com/").get();
		
		// トップページのh2要素を取得する
		Elements elements = doc.select("h2");
		
		// 取得した要素を順番に取得する
		for (Element element: elements) {
			
			// 取得した要素を出力する
			System.out.println(element.text());
		}
	}

}

初めにJsoup.connectメソッドを利用して、ブログのトップページにGETリクエストを送っています。
これによりトップページの情報を取得することができます。

さらにselectメソッドを使って、h2要素を取得しています。
当ブログのトップページにある記事のタイトルがh2であるため、h2要素を取得しました。

取得したタイトルを拡張for文を使って、順番に取得し、それを出力しています。

実行結果は次のようになります。

実行結果

【Java】文字列が数値かどうか判定する方法
【Java】四捨五入/切り上げ/切り捨てする方法を徹底解説
【サーブレット&jsp入門】値の受け渡し
【2022年版】EclipseをMacにインストールする
【Java】サーブレットとは?現役エンジニアがわかりやすく解説
【Java】コマンドライン引数とは?
【Java】コンストラクタとは?現役エンジニアがわかりやすく解説!
【Java】クラス変数とは?インスタンス変数との違いもわかりやすく解説
Javaのクラスとは?現役エンジニアがわかりやすく解説
【Java】キーボードからの入力を繰り返し実行する方法を解説

まとめ

今回はJavaでjsoupを利用してスクレイピングする方法について解説しました。

スクレイピングというのはWebサイトから必要な情報を抜き出す技術のことでデータ解析などに利用されます。
注意点としては相手のサーバーに負荷がかかるため、利用規約などをしっかりと確認してスクレイピングする必要があります。

jsoupを利用するためには公式ページからjarファイルをダウンロードし、それをEclipseで設定する必要があります。

今回は例として当ブログのトップページから記事のタイトルを取得し、出力する方法について実際にプログラムを書いて、解説しました。

最後まで読んでいただきありがとうございました。

タイトルとURLをコピーしました