1

bing 検索から URL を取得する簡単なスクリプトがあります。

import bingsearch

bingsearch.API_KEY='mykey'

r = bingsearch.request("JohnDalton")
print r.status_code

print r[0]['Url']

bingsearch.py​​ ファイルは次のとおりです。

import requests
import urllib2

URL = "https://api.datamarket.azure.com/Data.ashx/Bing/SearchWeb/Web?Query='%(query)s'&$top=50&$format=json"
API_KEY = 'mykey'
def request(query, **params):
    r = requests.get(URL % {'query': query}, auth=('', API_KEY))
    return r.json()['d']['results']

前述のエラーを回避するにはどうすればよいですか。ありがとう。

4

1 に答える 1

0

これは認証の問題です。結果が得られないため、デコードするものはありません。

次のエラーが表示される可能性があります。指定した認証タイプはサポートされていません。Basic と OAuth のみがサポートされています 401

私は認証辞書で考える

r = requests.get(URL % {'クエリ': クエリ}, auth=('', API_KEY))

空の文字列の代わりにユーザー名も渡す必要があります。

編集:

username と passwd は両方とも azure api と同一のようです。渡してみる

r = requests.get(URL % {'query': query}, auth=(API_KEY, API_KEY))

編集2:

わかりましたこれの出力は何ですか

import requests

URL = "https://api.datamarket.azure.com/Data.ashx/Bing/SearchWeb/Web?Query='%(query)s'&$top=50&$format=json"
API_KEY = 'mykey'
def request(query, **params):
    r = requests.get(URL % {'query': query}, auth=('', API_KEY))
    print r.content, r.status_code
    return r.json()['d']['results']


r = request("JohnDalton")
print r.status_code

print r[0]['Url']
于 2013-08-09T08:10:12.490 に答える