如何使用关键词搜索Bing的图像?
我可以使用以下方式搜索Google:
import urllib2 import json credentialGoogle = '' # Google credentials from: https://console.developers.google.com/ searchString = 'XBox%20One' top = 20 offset = 0 while offset < top: url = 'https://ajax.googleapis.com/ajax/services/search/images?' + \ 'v=1.0&q=%s&start=%d&userip=%s' % (searchString,offset,credentialGoogle) request = urllib2.Request(url) response = urllib2.urlopen(request) results = json.load(response) # process results offset += 4 # since Google API only returns 4 search results at a time
Bing的等价物是什么?据推测它开始于:
keyBing = '' # Bing key from: https://datamarket.azure.com/account/keys credentialBing = '' # same as key? searchString = '%27XBox+One%27' top = 20 offset = 0 url = 'https://api.datamarket.azure.com/Bing/Search/Image?' + \ 'Query=%s&$top=%d&$skip=%d&$format=json' % (searchString,top,offset)
但凭证是如何设置的?
解决方法
Bing等价物将是:
keyBing = '' # get Bing key from: https://datamarket.azure.com/account/keys credentialBing = 'Basic ' + (':%s' % keyBing).encode('base64')[:-1] # the "-1" is to remove the trailing "\n" which encode adds searchString = '%27XBox+One%27' top = 20 offset = 0 url = 'https://api.datamarket.azure.com/Bing/Search/Image?' + \ 'Query=%s&$top=%d&$skip=%d&$format=json' % (searchString,offset) request = urllib2.Request(url) request.add_header('Authorization',credentialBing) requestOpener = urllib2.build_opener() response = requestOpener.open(request) results = json.load(response) # process results
解决方案归功于:http://www.guguncube.com/2771/python-using-the-bing-search-api