Echec d'une requête API Bing sur l'authentification

Pourtant, je m'authentifie

Le problème exposé dans ce sujet a été résolu.

Bonjour à tous

J'ai un besoin simple : j'ai un nombre assez léger de mot clefs (disons 200, c'est vraiment cet ordre d'idée), pour chacun de ces mots, je veux mettre une thumbnail que j'ai trouvé sur le web.

Comme je ne suis pour l'instant qu'à la phase de POC, je me dis "tiens, je vais automatiser tout ça et je vais trouver des images sur le web".

Je fais donc un script python qui doit aller chercher des images sur l'API Bing. Seulement, j'ai sans cesse cette erreur :

urllib.error.HTTPError: HTTP Error 401: The authorization type you provided is not supported. Only Basic and OAuth are supported

Pourtant, comme vous pouvez le constater, j'utilise bien une Auth basique :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# coding: utf-8
from os.path import isfile as is_file
import urllib.request as urllib2
import json
import random
import base64

def get_first_bing_image(product):

    product_split = product.split(" ")
    if(len(product_split) > 3):
        product = " ".join(product_split[0:3])
    key = 'mon vrai nom n est pas artragis'
    query = product
    query = urllib2.quote(query)
    # create credential 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)'
    credentials = base64.b64encode(bytes(':%s' % key, 'ascii'))[:-1]
    auth = 'Basic %s' % credentials
    url = 'https://api.datamarket.azure.com/Data.ashx/Bing/Search/Image?Query=%27'+query+'%27&$top=5&$format=json'
    request = urllib2.Request(url)
    request.add_header('Authorization', auth)
    request.add_header('User-Agent', user_agent)
    request_opener = urllib2.build_opener()
    response = request_opener.open(request) 
    response_data = response.read()
    json_result = json.loads(response_data)
    result_list = json_result['d']['results']
    print(result_list)
    return result_list[0]['MediaUrl']
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte