##制約
- 月間5000リクエストまでは無料
- 10000リクエスト$20,それ移行従量課金性
- https://datamarket.azure.com/dataset/5BA839F1-12CE-4CCE-BF57-A49D98D29A44
##使い方
- Microsoftアカウントを作成し、APIKEYを取得
- API KEYはエンドポイントに対するbasic認証で用いる
- ユーザ名・パスワード共にAPI KEY
- パラメータに$を含むものがあり、encodeしてしまうとアクセスできない
- なぜかurllibを使ったアクセスでは400 bad requestになってしまった
- stack overflow等でも同様の現象が確認でき、解決策としてrequestsモジュールを用いることが推奨されている。理由はよくわからない
- クエリはシングルコーテーションで囲まないと認識されない
- 返り値の__nextに入るURLから$formatが消えるので注意
- 検索件数は取得できないよう
- skipは1000までしか指定できない模様。topは50がMAXなので1050件までしか取得できない
##サンプルコード
bingsearch.py
#! /usr/bin/python
# -*- coding:utf-8 -*-
import urllib
import requests
import json
NUM = 100
key = '' #api keyを入れる
url = 'https://api.datamarket.azure.com/Bing/Search/Web?'
json_param = '&$format=json'
param = {
'Query':"''", #クエリを入れる
}
req_url = url + urllib.urlencode(param)
for i in range(0,NUM):
r = requests.get(req_url + json_param,auth=(key,key)).json
print json.dumps(r)
req_url = r['d']['__next']