Edited at

bing search apiの使い方

More than 5 years have passed since last update.


制約


使い方


  • 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']