-2

我有一个简单的代码可以从 bing 搜索中获取 url。

import requests    
URL = "https://mykey:mykey@api.datamarket.azure.com/Bing/Search/Web?$format=json&Query='%27heythere%27'"
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']

这将返回上述行的错误

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

如果您转到 URL 中的链接,系统会提示您提供正常工作的密钥,它会返回浏览器上的 url。

4

2 回答 2

1

您的格式字符串...at=json&Query='%27heythe...包含格式说明符%27he,它打印一个float. 你给你的格式字符串一个dict.

于 2013-08-11T17:37:48.877 回答
0

这对我有用:

URL = "https://mykey:mykey@api.datamarket.azure.com/Bing/Search/Web?$format=json&Query='%(query)s'"

res = URL % {'query': "JoeDalton"}
print res

得到:

https://mykey:mykey@api.datamarket.azure.com/Bing/Search/Web?$format=json&query='JoeDalton'

如果你想用 dict 格式化一个字符串,你必须用 %(key_name)s 指明键名。如果您只想使用一个参数来格式化字符串,我将只使用 "%s" 并使用 "URL % "JoeDalton" 对其进行格式化

希望能帮助到你 :)

于 2013-08-11T16:19:47.720 回答