Salut Stackoverflow CommunautéBing Congitive API de recherche Web avec Python 3
Je tente d'accéder à la nouvelle API Bing Search cognitive via un script Python 3. Je suis en mesure de trouver des menaces sur l'utilisation de Bing Search 2.0 (depuis dépréciée) mais n'a pas été en mesure d'identifier un exemple pour la nouvelle API avec Python 3. J'ai utilisé le code suivant:
import urllib.parse
import urllib.request
import json
import base64
def bing_search(query):
key = 'mysubscription_key'
query = urllib.parse.quote(query)
#Create credentials for authentication
user_agent = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; FDM; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 1.1.4322)'
encoded = base64.b64encode(bytes(':%s' % key, 'utf-8'))
credentials = encoded[:-1] # the "-1" is to remove the trailing "\n" which encode adds
print(credentials)
auth = 'Basic %s' % credentials
print(auth)
url = 'https://api.cognitive.microsoft.com/bing/v5.0/search?q=' + query + '&mkt=en-us'
print(url)
#Create the API request
urlrequest = urllib.request.urlopen(url) # in Python3 urllib.request(...) becomes urllib.request.open(...)
urlrequest.add_header('Authentication', auth)
urlrequest.add_header('User Agent', user_agent)
request_opener = urllib.request.build_opener()
# Handle the response
response = request_opener.open(urlrequest)
results = json.load(response)
result_list = results['webPages']['values']
print(result_list)
bing_search('good news')
Malheureusement, je reçois la suite à l'erreur 'Accès refusé'. Quelqu'un pourrait-il me pointer dans la bonne direction?
C:\Users\Admin\AppData\Local\Programs\Python\Python35-32\python.exe C:/Users/Admin/PycharmProjects/momely/placementarchitect/bingtest.py
b'OmZhNTlmNTBlMmFmMjQyZjhhYmE5MTZlNmZkYThhMDM'
Basic b'OmZhNTlmNTBlMmFmMjQyZjhhYmE5MTZlNmZkYThhMDM'
https://api.cognitive.microsoft.com/bing/v5.0/search?q=good%20news&mkt=en-us
Traceback (most recent call last):
File "C:/Users/Admin/PycharmProjects/momely/placementarchitect/bingtest.py", line 34, in <module>
bing_search('good news')
File "C:/Users/Admin/PycharmProjects/momely/placementarchitect/bingtest.py", line 22, in bing_search
urlrequest = urllib.request.urlopen(url) # in Python3 urllib.request(...) becomes urllib.request.open(...)
File "C:\Users\Admin\AppData\Local\Programs\Python\Python35-32\lib\urllib\request.py", line 162, in urlopen
return opener.open(url, data, timeout)
File "C:\Users\Admin\AppData\Local\Programs\Python\Python35-32\lib\urllib\request.py", line 471, in open
response = meth(req, response)
File "C:\Users\Admin\AppData\Local\Programs\Python\Python35-32\lib\urllib\request.py", line 581, in http_response
'http', request, response, code, msg, hdrs)
File "C:\Users\Admin\AppData\Local\Programs\Python\Python35-32\lib\urllib\request.py", line 509, in error
return self._call_chain(*args)
File "C:\Users\Admin\AppData\Local\Programs\Python\Python35-32\lib\urllib\request.py", line 443, in _call_chain
result = func(*args)
File "C:\Users\Admin\AppData\Local\Programs\Python\Python35-32\lib\urllib\request.py", line 589, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 401: Access Denied
Merci de bien vouloir M.
vous woozyking remercie. Malheureusement, je reçois toujours la même erreur: urllib.error.HTTPError: Erreur HTTP 401: Accès refusé – Z101
Qu'avez-vous changé exactement? – woozyking
Merci beaucoup les demandes alternatives ont bien fonctionné. Vraiment apprécié. – Z101