Groovyでスクレイピングしてみる
ウェブサイトのデータを必要な部分だけ抽出して利用すること。
スクレイピングとは - はてなキーワード
Groovyだと簡単にWebからデータを取得できる。
お試しで書いてみたので、一応公開しておく。*1
/* * はてなハイクのトップページ(http://h.hatena.ne.jp/)にアクセスし * 最新のエントリを投稿したユーザIDを取得し、そのユーザのプロフィールの * URLを標準出力へ出力する。 */ def url = new URL('http://h.hatena.ne.jp/') def html = url.getText('UTF-8') def users = html.tokenize('\n').findAll{ it =~ /class="username"/ } users.each{ user -> def words = (user =~ /[\w_-]+/ ).inject([]){ r, i -> r << i } assert words[-3] == words[-4], "ユーザID: ${words[-4]} と ${words[-3]} は同じはず" def userid = words[-3] println "http://www.hatena.ne.jp/${userid}/" }
たったこれだけで書けちゃうのが素敵。
応用次第ではかなり有用なことができそう。
*1:groovyConsoleにコピペでも動きます。