Bing の検索 API を使ってみる

シェアする

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

Sponsored Links

Bing Search API

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

bing-search-api

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

Bing Search API を使ってみる

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

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

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

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

bing-search-api-on-browser

スクリプトから扱う場合も 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

シェアする

フォローする