【Scala】【jsoup】Scalaにjsoupを導入してみた

こんにちは、たくじろう(@takujiro_0529)です。

今回はScalaを使ってhtmlページ内のソースを取得してくるJavaライブラリ「jsoup」を取り入れた、簡単な動作確認サンプルを作成したいと思います。

スポンサーリンク




環境

-Scala IDE(Eclipse)[ 4.4.1]
-sbt version[ 0.13.11]

jsoup.jarの追加

下記URLにアクセスします。

https://jsoup.org/download

サイトから3つすべてのjarをダウンロードします。

プロジェクトのプロパティから「Add External JARS…」を選択し、先ほどダウンロードしたjarを追加します。

ソース

私が実際に記述したソースです。

6行目の「connectメソッド」の引数にhtmlソースを取得したいURLを入れるだけで、すべてのソースを取得してきてくれます。

7行目で取得してきたソースの「selectメソッド」の引数に、タグ・クラス名などを入れることで、より絞られたデータをコレクションとして取得できます。

最後に拡張for文で各要素の「textメソッド」を使って、そのタグに書かれていた文字列を取得して出力しています。

今回はこの記事の「h2, h3」タグの値をコンソールに出力しています。

出力結果>

ポイント

Scala>

9行目の「.asScala」の部分がポイントです。
このメソッドは「Javaコレクションを暗黙でScalaコレクションに変換」してくれるメソッドです。
まだ勉強不足のため、詳細はわかりません…

このメソッドを記述しないとコンパイルエラーになります。

ここでJavaでも同じ処理を記述したソースがありますので、違いを見てみましょう。

10行目の部分でJavaコレクションが返ってきていますので、Javaでの処理では変換は必要ないですね。

まとめ

Scalaでjsoupを利用した簡単な動作確認を行ってきました。
ScalaでJavaライブラリが使えるのってすごいですよね!(Scala素人発言orz)

また、jsoupは使いやすいし、クローラーなどで利用されているライブラリでもあり、かなり強力ですね。

もう少し踏み込んだ勉強をして、ちょっとしたwebサービスなんか作ってみたいもんです。

Scala初心者なので、アドバイスなど頂けたら幸いです。(とくに.asScalaについて…)

byたくじろう(@takujiro_0529)

スポンサーリンク

スポンサーリンク



シェアする

  • このエントリーをはてなブックマークに追加

フォローする