2014年7月3日木曜日

JavaScript (jQuery + jquery.xdomainajax.js)による外部ドメインのスクレイピング

スクレイピングといえば、PerlのWWW::Mechanizeが有名(と信じています^^)ですが、JavaScriptというか、jQueryでスクレイピングする、つまり、クライアントだけで完結できるスクレイピングの方法がないかと調べてみた。

※ スクレイピングとはHTML等のテキストコンテンツを解析して、任意の箇所を抽出、加工、表示等をする技術です。

JavaScriptの場合、Cross Domainの制限があるので、自サイトのように自由に他サイト(外部ドメイン)のコンテンツを読み込めません。そこで、使えるのがjquery.xdomainajax.js。jQueryのプラグインで他サイトのコンテンツを読み込み、スクレイピングできます。
厳密には、スクレイピングというより、Cross Domainの制約をjquery.xdomainajax.jsで突破し、取得したコンテンツを自サイトのコンテンツと同様にjQueryのセレクタを使って抽出、加工、表示するという合わせ技です。

簡単なサンプルソースは以下のようになります。

なお、スクレイピングは対象サイトの許可なく行うのは著作権上の問題に発展しかねないので、技術的な話ではないけどスクレイピング先のコンテンツ管理者の許可を得ておくことは非常に重要です。注意しましょう。


参考)
 ・JavaScriptで外部サイトをスクレイピング
 ・Javascriptスクレイピング!jquery.xdomainajax.js
 ・jQueryでスクレイピングをしたいなら「jquery.xdomainajax.js」が便利 | 
 ・JavaScriptで外部サイトのファイルを取得するためのTips - NAVER まとめ

1 件のコメント: