LoginSignup
61
56

More than 5 years have passed since last update.

Javaでスクレイピングをしよう!!

Posted at

開発環境

  • Spring Tool Suite

スクレイピングとは

Webサイト上のHTMLから特定の画像やタイトルなどのデータを抜き出す処理を指します!

スクレイピングに必要なライブラリ

スクレイピングをするには 「jsoup」 というライブラリを使用します!

jsoupとはHTMLを解析するためのライブラリで、解析するための様々なクラスが使えるようになります!

では、pom.xmlに以下の記述をしましょう。

<dependencies>

// 省略

    <dependency>
        <groupId>org.jsoup</groupId>
        <artifactId>jsoup</artifactId>
        <version>1.10.2</version>
    </dependency>
</dependencies>


スクレイピングを行う手順

① WebサイトからHTML情報を取得する
② HTML情報から指定のタグ要素の情報を検索する
③ HTML情報からテキスト、属性値を抜き出そう

① WebサイトからHTML情報を取得する

HTML情報を扱うには 「Documentクラス」 を使用します。
Documenntクラスの変数を作成し、その変数に取得したHTML情報を代入します。以下の記述です!

Document document = Jsoup.connect("url").get();

connectメソッドの引数にURLの文字列を指定することで、そのURLのWebサイトのHTMLを取得できます。
その情報をDocumentクラスの変数に代入します。


② HTML情報から指定のタグ要素の情報を検索する

取得したタグ情報を取得するには 「selectメソッド」 を使用します。

Document document = Jsoup.connect("url").get();
Elements elements = document.select("h3");

2行目記述の右辺にselectメソッドを使用していますね。引数に文字列でh3を記述しているので、指定したURLのWebサイトから h3要素の情報 を取得し、Elementsクラスの変数に代入します。
Elementsクラスとは、Elementクラスをリストのような形で保持しているクラスで、Elementクラスは、HTMLの要素を表すクラスです。


③ HTML情報からテキスト、属性値を抜き出そう

HTMLのテキストを取得する際には、 「textメソッド」 を使用し、属性の値を取得したい場合は 「attrメソッド」 を使用します。

Document document = Jsoup.connect("url").get();
Elements elements = document.select("h3");

for (Element element : elements) {
    System.out.println(element.text());
}

selectメソッドで取得した"h3"要素の情報からテキストを取り出し、コンソールに表示させます!

Document document = Jsoup.connect("url").get();
Elements elements = document.select("h3 a");

for (Element element : elements) {
    System.out.println(element.attr("href"));
}

selectメソッドで取得した"h3 a"要素の情報からhref属性を取り出し、コンソールに表示させます!

61
56
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
61
56