1. takahiroSakamoto

    Posted

    takahiroSakamoto
Changes in title
+Javaでスクレイピングをしよう!!
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,91 @@
+
+#開発環境
+- Spring Tool Suite
+
+#スクレイピングとは
+Webサイト上のHTMLから特定の画像やタイトルなどのデータを抜き出す処理を指します!
+
+
+##スクレイピングに必要なライブラリ
+スクレイピングをするには **「jsoup」** というライブラリを使用します!
+
+jsoupとはHTMLを解析するためのライブラリで、解析するための様々なクラスが使えるようになります!
+
+
+では、pom.xmlに以下の記述をしましょう。
+
+
+```Java[]{}:
+<dependencies>
+
+// 省略
+
+ <dependency>
+ <groupId>org.jsoup</groupId>
+ <artifactId>jsoup</artifactId>
+ <version>1.10.2</version>
+ </dependency>
+</dependencies>
+```
+<br>
+
+##スクレイピングを行う手順
+① WebサイトからHTML情報を取得する
+② HTML情報から指定のタグ要素の情報を検索する
+③ HTML情報からテキスト、属性値を抜き出そう
+
+
+
+
+###① WebサイトからHTML情報を取得する
+HTML情報を扱うには **「Documentクラス」** を使用します。
+Documenntクラスの変数を作成し、その変数に取得したHTML情報を代入します。以下の記述です!
+
+```Java[]{}:
+Document document = Jsoup.connect("url").get();
+```
+
+connectメソッドの引数にURLの文字列を指定することで、そのURLのWebサイトのHTMLを取得できます。
+その情報をDocumentクラスの変数に代入します。
+
+<br>
+
+###② HTML情報から指定のタグ要素の情報を検索する
+取得したタグ情報を取得するには **「selectメソッド」** を使用します。
+
+```Java[1]{2}:
+Document document = Jsoup.connect("url").get();
+Elements elements = document.select("h3");
+```
+
+2行目記述の右辺にselectメソッドを使用していますね。引数に文字列でh3を記述しているので、指定したURLのWebサイトから h3要素の情報 を取得し、Elementsクラスの変数に代入します。
+Elementsクラスとは、Elementクラスをリストのような形で保持しているクラスで、Elementクラスは、HTMLの要素を表すクラスです。
+
+<br>
+
+###③ HTML情報からテキスト、属性値を抜き出そう
+HTMLのテキストを取得する際には、 **「textメソッド」** を使用し、属性の値を取得したい場合は **「attrメソッド」** を使用します。
+
+```Java[]{}:
+Document document = Jsoup.connect("url").get();
+Elements elements = document.select("h3");
+
+for (Element element : elements) {
+ System.out.println(element.text());
+}
+```
+
+selectメソッドで取得した"h3"要素の情報からテキストを取り出し、コンソールに表示させます!
+<br>
+
+```Java[]{}:
+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属性を取り出し、コンソールに表示させます!
+