URLを引数に本文抽出を行うJavaライブラリ「Boilerplate」
BoilerplateはURLを与えると本文部分を抽出するライブラリ。
BoilerplateはJava製のオープンソース・ソフトウェア。Webサイトをクローリングしたり、そのサイト内にあるテキストを使って別なWebサービスを構築すると言った手法はよく存在する。そんな時に必要になるのが本文抽出というテクニックだ。
デモ
Webサイトには本文以外にも多様なコンテンツが存在する。例えばヘッダー、サイドバー、フッター、広告などだ。そうした無用なコンテンツを除去し、必要な部分だけ取り出すためのライブラリがBoilerplateだ。
BoilerplateはURLを引数に、後は自動的にコンテンツを取得して本文だけを返却してくれるという手軽なライブラリだ。Javaのライブラリなので、既存のJavaシステムに組み込むのはもちろん、Google App Engineを使ってWeb APIとしてコンテンツ抽出を行うデモもある。
結果例
本文はテキストのみはもちろん、HTMLタグをつけた状態での抽出もできる。また、アルゴリズムについても幾つかパターンがあるので、より自分のニーズにマッチしたものが選択できる。任意のWebサイトに対応しているので、テキストコンテンツを組み合わせたサービスを作るのに使えそうだ。
[s2If current_user_can(access_s2member_level1)]
JSONによる返却も(プレミアム限定)
[/s2If]
MOONGIFTはこう見る
本文をより正確に抜き取ろうと思うと、ドメイン以下にあるコンテンツの差分を取得して、その偏差値に応じてどこが本文であるかを決定すると言った仕組みが必要だ。だがそのためには膨大なデータのクローリングが必要になってしまい、特定URLに関してだけであれば非効率的だ。
そのため一定のアルゴリズムにおいて本文部分を抽出するライブラリに人気が集まる。特にBoilerplateのようにWeb API化されていれば使う方はとても簡単だ。アルゴリズムの精度はそれほど高くないが、オープンソースなので自分で鍛えることもできるだろう。