直接の(データベースへの)APIがあるわけではないにもかかわらず、多くの企業はdel.icio.usに蓄えられている情報を活用している。次のような例がある。
Delexaは、del.icio.usを使ってAlexaのサイトをカテゴリ分けする、面白くて便利なマッシュアップだ。例えば、「book」という単語でタグ付けされた有名なサイトを下にまとめてみた。
別の例はsimilicio.usと呼ばれるサイトで、del.icio.usを使って類似サイトを推薦する。例えば、同サイトによれば、Read/WriteWebに似ているのは次に示すようなサイトだ。
APIがないのにこれらのサービスはどうやってこういうことを実現しているのだろうか。答えは、標準化されたURLの活用と、ウェブスクレイピングと呼ばれる技術だ。これがどうやって動いているかを見てみよう。del.icio.usでは、例えば「book」というタグを持つすべてのURLは「http://del.icio.us/tag/book」というURLの下にある。また、「movie」というタグを持つものは「http://del.icio.us/tag/movie」の下、というふうになっている。このURLの構造は常に同じで、「http://del.icio.us/tag[タグ]」となっている。したがって、どんなタグが与えられても、コンピュータプログラムからそのタグを持つサイトのリストを含むページを取り出すことができる。ページが得られれば、プログラムからのスクレイピング、つまりそのページから必要な情報を抽出することが可能になるのだ。
ウェブスクレイピングは、本質的にHTMLページのリバースエンジニアリングだ。ページから情報の断片を構文解析で取り出すことだと考えてもいい。ウェブページはHTMLでコーディングされており、情報を示すツリー状構造を持つ。実際のデータはレイアウト情報や補足情報と混ざり合っていて、コンピュータで扱いやすい形にはなっていない。与えられたHTMLのページから元のデータを取り出す方法を知っているプログラムがスクレイパーだ。それらのプログラムは、特定のマークアップの詳細を研究して、元のデータがどこにあるかを判断する。例えば、del.icio.usのページからURLを抽出するスクレイパーは以下の図のように機能する。このようなスクレイパーを適用すると、任意の与えられたタグに対して、そのタグを持つURLを調べることができる。
Read/WriteWebでは最近Yahoo! Pipesを取り上げた。これは、RSSフィードをリミックスすることに焦点を当てたYahoo!の新アプリケーションだ。最近始まったTeqloも類似の技術で、ユーザーがウェブサービスとRSSからマッシュアップやウィジェットを作れるようにすることに焦点を当てている。この2つのサイトよりも前に、Dapperがどんなウェブサイトにも使える一般的なスクレイピングサービスを開始している。Dapperはウェブページのスクレイピングを視覚的なインターフェースで手助けする興味深い技術だ。
Dapperは、開発者にいくつかのサンプルページを定義させ、次にマーカーを使って似たような情報を示させる。これは単純に見えるが、これを実現するのに、Dapperは背後で複雑なツリーマッチングアルゴリズムを使っている。ユーザーが一度ページ上の情報に似た情報の断片を定義するとそれをフィールドにできるようになる。ページ上の他の情報についても同じ処理を繰り返せば、開発者は構造化されていないページから一連の構造化された情報を取り出すクエリーを効率よく定義することができる。
CNET Japanの記事を毎朝メールでまとめ読み(無料)
パナソニックのV2H蓄電システムで創る
エコなのに快適な未来の住宅環境
ものづくりの革新と社会課題の解決
ニコンが描く「人と機械が共創する社会」
OMO戦略や小売DXの実現へ
顧客満足度を高めるデータ活用5つの打ち手
企業や自治体、教育機関で再び注目を集める
身近なメタバース活用を実現する