サイトアイコン Lonely Mobiler

Bing の検索 API を使ってみる

検索エンジンからデータ取って加工してみたいな事をしたかったので API を調べたら Bing Search API が良さそうな感じがしたので使ってみた。

Bing Developer Center

Bing Search API

月5000回までは無料で利用でき、Web, 画像, ニュース, ビデオ, 関連検索, スペルサジェスト の6種類のクエリーを行う事ができる。形式は XML か Json となる。

無料版であれば上記 Bing Developer Center に登録を行うだけで利用する事が可能で、お金を払えばそれ以上の検索を行う事もできる。

Bing Search API を使ってみる

API は http でアクセスするだけで簡単に利用する事ができ、ブラウザからでも動作を確認する事ができる。

https://api.datamarket.azure.com/Bing/Search/Web?$format=json&Query='Surface Pro 3'

Query に検索語句を入れるわけだがシングルクォートで囲わないといけないようだ。

Basic 認証を求められるのでユーザーは空で、パスワードに取得したアクセスキーをいれれば結果が返ってくる。

スクリプトから扱う場合も https でアクセスして json をパースするだけの簡単な作業となる。

require 'open-uri' require 'net/https' require 'json'

account_key = 'account_key' uri_base = 'https://api.datamarket.azure.com/Bing/Search/Web?$format=json&Query=' query = 'Surface Pro 3'

uri = URI.parse("%s'%s'" % [uri_base, URI.encode(query)])

https = Net::HTTP.new(uri.host, uri.port) https.use_ssl = true https.verify_mode = OpenSSL::SSL::VERIFY_NONE

req = Net::HTTP::Get.new(uri.request_uri) req.basic_auth('', account_key) res = https.request(req)

json_data = JSON.load(res.body) json_data['d']['results'].each do |value| puts value['Title'] + ':' + value['Url'] end

実行すると検索結果の一覧が見れる。

$ ruby test-bing-web-search-api.rb New Surface Pro 3 Tablet - The Tablet That Can Replace ...:http://www.microsoft.com/surface/en-us/products/surface-pro-3 Microsoft Surface Tablets - The Windows Tablet That Does More:http://www.microsoft.com/surface/en-us Microsoft Surface Pro 3 review - CNET - Product reviews ...:http://www.cnet.com/products/microsoft-surface-pro-3/ # 以下略

便利だ。

Sponsored Link
モバイルバージョンを終了