スクレイピングで作る“まとめサイト”まとめサイト2.0(2/2 ページ)

» 2007年12月03日 07時30分 公開
[大澤文孝,ITmedia]
前のページへ 1|2       

RSSを活用する

 スクレイピングはHTMLを解析するわけだが、もし、サイトでRSSが提供されているのであれば、RSSも併用するとスクレイピングしやすい。RSSは構造化されたデータだからだ。

 RSSのデータ内には、記事の「タイトル」「概要」「更新日」「URL」がカテゴリ別に分けられ、記載されている。更新日が入っていることからも、RSSを見れば、最新のコンテンツのURLが分かるというのは、改めて言うまでもない。

 スクレイピングする時には、カテゴリーも得られるという点に着目したい。この分類が可能なことは、「そのカテゴリのコンテンツ」だけの抜き出しが極めて容易になるということだ。

 例えば、実際にオルタナティブ・ブログのRSSは、幾つかのカテゴリに分類されている。実際にInternet Explorer 7でRSSを参照すると、右側にある[カテゴリによるフィルタ]の部分で確認できる(図3)

図3■カテゴリ化されたRSSの例

Webでスクレイピングしやすくなった最近の事情

 実は、スクレイピングというものは、昔からあるものだ。最近登場した技術というわけではない。それではなぜスクレイピングが、いまになって騒がれ出したのか?

 それには、3つの理由がある。

1)マッシュアップできないサイトへの不満

 第一に挙げられるのは、心理的な理由だろう。冒頭で説明したように、マッシュアップできるサイトは、あまりにも少ない。

 マッシュアップが流行れば、マッシュアップできないサイトでも、なんとかマッシュアップしたいと思うのは不思議ではない。

2)HTMLコードがキレイになった

 第二に挙げられるのは、マッシュアップのしやすさという技術的な理由だ。

 これはHTMLにおいて、「構造」と「スタイル」との分離が進み、HTMLの構造がキレイになったという面が大きい。従来までのHTMLは、ただ文字を大きくするためだけにh1タグを使ってみたり、レイアウトを整えるためにtableタグを多用したりするなど、今からすればひどい状況だった。このような状態では、スクレイピングするといっても、情報要素の特定がしづらかったのだ。

 しかし最近では、そういったスタイルはCSSとして設定されることが多くなり、HTMLはキレイに構造化されていることが大きい。これにより、「どこからどこまでを切り出すか」という指定がしやすくなったのだ。

3)スクレイピングするためのライブラリやツールが整ってきた

 従来は、スクレイピングの技法は、HTMLを解析してif文で調べたり、正規表現でパターンマッチさせたりするというのが、主たる方法であった。この方法では、スクレイピングする範囲の設定が極めて煩雑になる。

 しかし最近は、先人が作ったスクレイピングのライブラリやツールがそろってきており、プログラミングの知識をそれほど持たない人でも、スクレイピングができるようになってきた。つまり敷居が低くなってきたわけだ。

 それでは具体的に、スクレイピングするには、どのような技術を使うのか。後編では、そのあたりの事情を見ていこう。

 今回の連載、第1回目の最後に、あえてスクレイピングされないためには? といった視点でも解説しておこう。

 本連載では、「スクレイピングする側」に立った視線で考えていくが、コンテンツの提供者側から見れば、汗して作ったコンテンツそのものを「まるごと」流用されることなどは、許し難いものだろう。

 この連載では、スクレイピングの技法を、随時説明していく。その技法を見ると分かるが、HTML中の「特定の要素」を抜き出すことによって成り立つ。このため、スクレイピングを防ぐには、“動的に要素を作ればよい”ということになるわけだ。すべての要素を動的に、ということは至難だろうが、この点を頭に入れておけばヒントが見つかるはずだ。

 1つ挙げるとすれば、コンテンツを静的なHTMLとしてではなく、JavaScriptを埋め込み、JavaScriptのdocument.writeを使ってクライアントサイドで動的に作り出すことにすれば、ある程度、スクレイピングを防止できるだろう。

 今後、スクレイピングが流行ってくれば、「スクレイピングする側」と「スクレイピングされる側」とのイタチごっこが激化することになるだろう。

前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ