Python
api
bing

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