【scalaでスクレイピング】scalaでjsoupを使う
- 2016/10/27
- システム
- この記事は約1分で読めます。
【scalaでスクレイピング】scalaでjsoupを使う
jsoup は Java のライブラリでHTMLの解析がおこなえます。
URLからWebページを取得できますし、CSSセレクタで
タグの検索とかできます。
そして、何より文字コードの判定を自動でしてくれて、
ほぼ文字コードの変換処理いらずです。
これは、ほんとに助かります。
まだまだUTF-8じゃないサイトもあって、
スクレイピングの悩みのもとですから!!
jsoupのインストール
build.sbtに下記を記述するだけです。
1 |
libraryDependencies += "org.jsoup" % "jsoup" % "1.9.2" |
scalaでの゙jsoupの使用例
・URLへのアクセス
1 2 3 4 5 6 7 8 9 10 |
import org.jsoup._ import collection.JavaConverters._ val request_url = "http://macbeese.com/"; // URL先のWebページへアクセス val doc = Jsoup.connect(request_url).get() // HTML文字列の取得 val html = doc.html() |
・ユーザエージェントを指定して、URLへアクセスする
1 2 3 4 5 6 7 8 9 10 11 12 |
import org.jsoup._ import collection.JavaConverters._ val request_url = "http://macbeese.com/"; val ua = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36"; // ユーザエージェントを指定してWebページへアクセス val doc = Jsoup.connect(request_url).userAgent(ua).get() // HTML文字列の取得 val html = doc.html() |
・POST通信でのアクセス
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import org.jsoup._ import collection.JavaConverters._ val request_url = "http://macbeese.com/"; val ua = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36"; // パラメータを指定してWebページへPOST val doc = Jsoup.connect(request_url) .data("paramname1", "paravalue1") .data("paramname2", "paravalue2") .userAgent(ua) .post() // HTML文字列の取得 val html = doc.html() |
まとめ
・jsoupは、Javaのライブラリで、もちろんscalaでも使用できます
・文字コードの判定も結構自動でやってくれます
・何より簡単に扱えます
以上です!
The following two tabs change content below.
デミ
Z or R Twice
で検索すると…
最新記事 by デミ (全て見る)
- 【20分で完了】MacにDocker for Macのインストール - 2017/02/02
- 【2017年版】Web接客ツール9社を比較してみた - 2017/01/26
- 【昼休み中に完了!】Macで最新Ruby、Railsのインストールから画面表示まで - 2017/01/19