Yahoo!検索用API

はじめに

 2005年12月。Yahoo!が検索用のAPI「Yahoo!検索Webサービス」 を公開しました。これによりYahoo!の検索結果を外部プログラムから簡単に使えるようになりました。

 これまで同様のサービスをGoogleやamazonなどが行っていました。Yahoo!の参入によりさらにこの分野 の活性化が予想されます。私自身、正直なところ検索にYahoo!を使うことは月に1回あるかどうかぐらい (Yahoo! Auctionは除く)であり公開されたからと言って使う予定はないのですが...あまりに簡単に使え るようなので、APIの使い方について簡単に書いてみました。


 Visual C++のTIPSではありませんが、プログラミング関連ということでここにジャンル分けしています。


検索制限

 2005年12月の時点で検索可能なジャンルは「ウェブ検索」「画像検索」「動画検索」の3種類です(Yahoo! オークションに関してはだいぶ昔からRSS形式で検索可能です)。

 検索回数は1つのIPアドレスに対して5000回/24時間の制限があります。。
 微妙なのは1日ではなく24時間という点。例えば12月3日15時00分から5000回 検索をしたとします。すると5001回目の検索は失敗します。再び検索可能にな るのは12月4日15時00分からとなります。

 後述のアプリケーションIDに対する検索回数制限はない。

 取得できる検索結果は1件目~1000件目まで。1000件目以上は取得できない。


アプリケーションIDの取得

 サービスの利用には「アプリケーションID」の登録が必要です。Googleでの「API key」、amazonでの 「Amazon Subscription ID」に対応するものです。

 Googleやamazonの場合との違いは...Googleなどが独自に生成したランダムな文字列を利用すること になります。しかしYahoo!の場合は自分で作成した文字列を登録する形になります。

 そのため「0JEY3JTERNDVFRG7KT02」のような文字列ではなく「ForWwwDinopCom」のような文字列をアプ リケーションIDとして利用することができます。

 また、アプリケーションIDの取得にはYahoo!のIDが必要で、Yahoo!のID1つにつき10個のアプリケーショ ンIDを登録可能です。

 実際の登録は このURLから行います。


 ちなみにこのアプリケーションIDは「APIの使用状況を把握し、スパム行為などの妨害行為を防ぐために 使用される」ということです。
 しかし上記のような自分で文字列を入力するシステムのため、例えば「YahooSearch」や「YahooWebServie」 のような文字列を登録しようとすると「入力されたアプリケーションID はすでに使用されています」と表示 されることから、使われている文字列を容易に推測可能。しかもそのようにして導き出したアプリケーションID を使って検索も問題なくできてしまう...スパム行為をするような問題のある利用をする人はわざわざ登録 せずに、このような手を利用することが考えられるので、あまり意味がないような気がします。

※ここに書かれている不正な方法で取得したアプリケーションIDを使っての検索などは不正アクセス禁止法 に触れる可能性があります。お気をつけください。


実際の検索

 例えばこんな感じのURLにアクセスします。 http://api.search.yahoo.co.jp/WebSearchService/V1/webSearch?appid=wwwdinopcom&query=dinopsearchbar たったこれだけです(太字の部分はアプリケーションIDです)。これだけで「DinopSearchBar」に対する検索結果 が取得できます

 上の検索はウェブ検索のものです。
「http://api.search.yahoo.co.jp/WebSearchService/V1/webSearch」の部分を
「http://api.search.yahoo.co.jp/ImageSearchService/V1/imageSearch」に変えると画像検索。
「http://api.search.yahoo.co.jp/VideoSearchService/V1/videoSearch」にすると動画検索が可能です。

 あまりに簡単すぎてこれ以上書くことがありません。


詳細検索

 "書くことがない"と言っても機能がこれだけしかないというわけではありません。検索時のオプション を様々に設定することができます。

 例えば「&results=50」を付けて http://api.search.yahoo.co.jp/WebSearchService/V1/webSearch?appid=wwwdinopcom&query=dinopsearchbar&results=50 のようにすると、検索結果が50個取得できます。この値は1~50までの範囲で設定可能です。


 検索結果のページ切り替えは「&start=100」を付けて http://api.search.yahoo.co.jp/WebSearchService/V1/webSearch?appid=wwwdinopcom&query=dinopsearchbar&results=50&start=100 のようにすると、1ページの検索結果が50個で、2ページ目を表示するという意味になります。つまりページそのものの指定ではなく、検索結果の表示開始 件数目での指定になります。


 ほかにもいくつかの設定ができます。詳しくは http://developer.yahoo.co.jp/search/web/V1/webSearch.htmlの表を見るといいと思います。

カテゴリー「VC++ TIPS」 のエントリー