先日、名古屋で学生向けGrails/Groovyハンズオンをやらせて頂きました。 その中で、学生さんから「任意のサイトからHTMLを取得して、HTML中の任意の要素を取得するのにスマートな方法はありませんか?」といったような質問を受けました。いわゆるWebスクレイピングですね。その場では、TagSoup http://ccil.org/~cowan/XML/tagsoup/ を紹介しつつ実演しました。手元にTagSoupを使ったコードがすでにあって、その場で時間をかけずに見せやすかったからです。 が、jsoup http://jsoup.org/ の方が使い方とかjavascriptと同じように書けてかっこ良いですね。なので、この記事ではjsoupで書きます。 まず、(Grailsを前提として) BuildConfig.groovy のdependenciesにjsoupを追加してあげます