Groovyを試してみる
パラパラとページをめくっていたら「スクレイピング」の文字が見えたので、試してみることに。個人的に、スクリプト系言語は文字列操作用、という偏見もあるのだが、Javaでこういったことをやろうとするとなかなか大変なのは事実だろう。
参考にした箇所はp.422「13.5.1 HTMLページからデータの抽出」節。
コードは以下。ニコニコ動画で指定したキーワード(ここでは"紅葉")を検索し、件名とファイルのIDを取得する。(ソースコード, 結果出力)
import org.cyberneko.html.parsers.SAXParser import nicobrowser.NicoHttpClient def nico = NicoHttpClient.getInstance() nico.login 'id@mail.address','password' def is = nico.search('紅葉') def html = new XmlSlurper(new SAXParser()).parse(is) def res = html.'**'.findAll{it.attributes()['class'] == 'video'} //9.動画へのリンクを抽出 def id = res*.attributes()['href']*.replaceAll('watch/','') //10.リンク文字列を編集 println res // 検索結果の件名 println id // 検索結果のファイルID
実質、9,10行目の2行で処理している。ただし何をやっているのかは私にはまだ分からない...
実行に必要なものはNekoHtmlとXerces2, NicoBrowser一式に今回用に改造したjarを上書きしたもの。
しかし、NetBeans上でGroovyを動かしてもコード補完も無いしエラーも分かりづらいしで、入門者には敷居が高いと感じる。
追記:コードが見難いのでこちらにソースコードと出力結果を置いておいた。
« JMFで動画に字幕文字列をオーバレイするプログラムのソースコード | トップページ | JavaFXでFLVを再生してみた »
この記事へのコメントは終了しました。
« JMFで動画に字幕文字列をオーバレイするプログラムのソースコード | トップページ | JavaFXでFLVを再生してみた »
コメント