こんにちは、大学時代にプログラミングを始め、現在はエンジニアをしているuhablog(ウハブログ)です。
今回の記事では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で設定する必要があります。
今回は例として当ブログのトップページから記事のタイトルを取得し、出力する方法について実際にプログラムを書いて、解説しました。
挫折せずにプログラミングを学ぶためには?
僕はプログラミングで挫折した経験があります。
エラーの連続やエラーが解消しても思った通りに動かないといったことが原因で、プログラミングが嫌いでした。
「プログラミングって全然意味わからないし、全然楽しくない」そう思っていました。
原因は当時周りに聞ける人が誰もいなかったからです。
プログラミング学習をしていく上で周りに聞ける環境というのはとても大切です。
周りに聞ける人なんていない
そんな人におすすめなのが月額10,780円で現役エンジニアに質問できる、プログラミングスクールのFreeksです。
多くのプログラミングスクールが数十万円払って通うところを月額10,780円から通うことができるのはコスパが良いです。
しかもサブスク制で、自分のペースで学ぶことができ嫌になったらすぐにやめることができます。
「周りに誰も聞ける人がいなくて、エラーが解決できない」「プログラミング全然楽しくない」という方は、無料カウンセリングを受けてみて下さい。
【関連記事】Freeks評判、口コミ