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 % {'query': query}, auth=('', API_KEY))

您也应该传递用户名而不是空字符串。

编辑:

看起来用户名和密码对于 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 回答