
上記悩みに答えます。

Javaのスクレイピングはライブラリを使用
Javaでスクレイピングをするには「jsoup」というライブラリを使用します。
利用方法や注意点は後述しますが、まずはJavaでスクレイピングを行うプログラムを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
// Javaでスクレイピングを行う 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 Main { public static void main(String[] args) { try { // jsoupを使用して当ブログのトップページへアクセス Document doc = Jsoup.connect("https://java-skill.com/").get(); Elements elements = doc.select("h3"); for (Element element : elements) { System.out.println(element.text()); } } catch (IOException e) { e.printStackTrace(); } } } |
実行結果は以下になります。
1 2 3 |
// 実行結果 Java初心者にオススメの入門書籍2冊【現役エンジニアが厳選選択】 JavaSkillHacks |
当ブログのトップページに表示されている、記事のタイトルを取得しています。
およそ、5行程度のプログラムですので、難しくないですね。
スクレイピングとは
ウェブサイトから情報を取得し、データ解析や目的に沿う情報に整形する事をスクレイピングといいます。
スクレイピングのイメージ
具体的なスクレイピングの処理イメージです。
Javaから「jsoup」のライブラリを使用して、所定のページへアクセス(Webサーバ)すると、HTMLの情報が取得出来ます。
取得したHTMLの情報を解析をして記事のタイトル一覧を表示しています。
本格的なスクレイピングを行う場合、クライアントではなくWebサーバやDBサーバのレンタルをして、定期的にスクレイピングを行った結果をDBに蓄積するのが一般的です。
スクレイピングの注意点
無作為にスクレイピングをすると、捕まる危険性があります。
有名なスクレイピングでの逮捕事例は下記の通り。
岡崎市立中央図書館事件(おかざきしりつちゅうおうとしょかんじけん)は、2010年3月頃に岡崎市立図書館の蔵書検索システムにアクセス障害が発生し、利用者の一人が逮捕された事件である。利用者に攻撃の意図はなく、また、根本的な原因が図書館側のシステムの不具合にあったことから論議を呼んだ。逮捕された人物が取調べの後、Librahackというサイトを立ち上げて解説をしたことから、Librahack事件とも呼ばれる。
Wikipedia引用
こういった事例もあるので、スクレイピングを行う際のマナーは最低限守りましょう。
明確な法律等、まだ整備されていない部分もありますので、マナーの詳細は技術雑記様の【Webスクレイピング】注意事項や最低限のルールに目を通して貰えればと思います。
私も参考にさせて頂いております。
jsoupの利用方法
jsoup公式ページへアクセスして、ライブラリをダウンロードしましょう。
トップページ
トップページ下段の「Getting started」欄にある「Download」リンクをクリックします。
ページ上段部の「jsoup-1.12.1.jar」ファイルをダウンロードします。
最新バージョンは「1.12.1」です。(2019/11月時点)
所定のフォルダにダウンロードされた事を確認します。
これでJavaでスクレイピングに必要なライブラリのダウンロードは完了です。
この後、Javaで利用出来るように設定を進めていきます。
Eclipseに「jsoup.jar」を追加
Eclipseを起動します。
プロジェクトを「右クリック」します。
「ビルド・パス」→「外部アーカイブの追加」を選択します。
「jsoup-1.12.1.jar」を選択します。
プロジェクト配下に「jsoup-1.12.1.jar」が表示されていますね。
これで環境設定は完了です。後は冒頭のプログラムをコピペすればOKです。
プログラム解説
プログラムの解説をしていきます。
1 |
Document doc = Jsoup.connect("https://java-skill.com/").get(); |
指定されたURLのページに「GET」のリクエストを発行して、ページの情報を取得しています。
1 |
Elements elements = doc.select("h3"); |
取得したページ情報から「<h3>」タグ内のデータを全て取得する処理になります。
1 2 3 |
for (Element element : elements) { System.out.println(element.text()); } |
取得したタグの値を表示する処理になります。
5行程度ですが、Javaのスクレイピングはライブラリを使用すれば簡単に出来ますね!

以上になります。