80 votes

Existe-t-il une API Amazon.com pour récupérer les avis sur les produits ?

L'une des API/services AWS permet-elle d'accéder aux avis sur les produits vendus par Amazon ? Je suis intéressé par la recherche d'avis par tuple (ASIN, user_id). Je vois que l'API Publicité produit renvoie une URL vers une page (à intégrer dans un IFRAME) contenant les URL, mais je suis intéressé par un format lisible par machine des données d'évaluation, si possible.

37voto

Tyler Collier Points 1917

Mise à jour 2 :

Veuillez consulter le commentaire de @jpillora. C'est probablement le plus pertinent concernant Mise à jour 1 .

Mise à jour 1 :

Peut-être. J'ai écrit la réponse originale ci-dessous plus tôt. Je n'ai pas le temps de me pencher sur la question pour l'instant, car je ne travaille plus sur un projet concernant les avis d'Amazon, mais leur page Web à l'adresse suivante API pour la publicité des produits indique que "l'API de publicité produit vous aide à faire de la publicité pour les produits Amazon en utilisant la recherche de produits et la capacité de recherche, les informations sur les produits et les fonctionnalités telles que les avis des clients..." en date du 2011-12-08. J'espère donc que quelqu'un se penchera sur la question et publiera un message ici ; n'hésitez pas à modifier cette réponse.

Original :

Non.

Voici un forum de discussion intéressant à ce sujet, avec des théories sur les raisons : http://forums.digitalpoint.com/showthread.php?t=1932326

Si je me trompe, merci de poster ce que vous trouvez. Je suis intéressé par l'obtention du contenu des critiques, ainsi que par l'autorisation de soumettre des critiques à Amazon, si possible.

Vous pouvez consulter ce lien : http://reviewazon.com/ . Je viens juste de tomber dessus et je n'ai pas regardé, mais je suis surpris de ne pas voir de mention sur leur site à propos de la mise à jour concernant l'abandon des commentaires de l'API de publicité des produits Amazon postée à : https://affiliate-program.amazon.com/gp/advertising/api/detail/main.html

27voto

Bryce Points 1709

Voici la version officielle de l'affaire :

Cher développeur d'API de publicité produit,

À partir du 8 novembre 2010, le groupe de réponse " Reviews " de l'API Produit produit ne renverra plus le contenu des avis des clients et renverra et renverra à la place un lien vers le contenu des avis clients hébergé sur Amazon.com. Vous pourrez afficher les avis des clients sur votre site en utilisant ce lien. en utilisant ce lien. Pour plus de détails, veuillez vous reporter au guide du développeur de l'API que vous trouverez ici pour plus de détails. Le groupe de réponses Avis continuera à continuera à fonctionner comme avant jusqu'au 8 novembre et le nouveau lien vers les clients est disponible dès à présent via l'API de publicité produit. Product Advertising API.

15voto

mfs Points 61

Voici ce que j'en pense - vous pouvez facilement récupérer les commentaires eux-mêmes avec un peu plus de travail :

countries=['com','co.uk','ca','de']
books=[
        '''http://www.amazon.%s/Glass-House-Climate-Millennium-ebook/dp/B005U3U69C''',
        '''http://www.amazon.%s/The-Japanese-Observer-ebook/dp/B0078FMYD6''',
        '''http://www.amazon.%s/Falling-Through-Water-ebook/dp/B009VJ1622''',
      ]
import urllib2;
for book in books:
    print '-'*40
    print book.split('%s/')[1]
    for country in countries:
        asin=book.split('/')[-1]; title=book.split('/')[3]
        url='''http://www.amazon.%s/product-reviews/%s'''%(country,asin)
        try: f = urllib2.urlopen(url)
        except: page=""
        page=f.read().lower(); print '%s=%s'%(country, page.count('member-review'))
print '-'*40

8voto

user2660784 Points 19

Selon l'accord de licence de l'API Amazon Product Advertizing ( https://affiliate-program.amazon.com/gp/advertising/api/detail/agreement.html ) et plus particulièrement le point 4.b.iii :

Vous utiliserez le contenu publicitaire des produits uniquement ... pour envoyer les utilisateurs finaux vers le site Amazon et stimuler les ventes.

ce qui signifie qu'il vous est interdit d'afficher les avis sur les produits Amazon obtenus via leur API pour vendre des produits sur votre site. Il est seulement autorisé de rediriger les visiteurs de votre site vers Amazon et de recevoir les commissions d'affiliation.

4voto

leelloyd Points 111

J'utiliserais quelque chose comme la réponse de @mfs ci-dessus. Malheureusement, sa réponse ne fonctionnerait que pour un maximum de 10 avis, puisque c'est le maximum qui peut être affiché sur une page.

Vous pouvez considérer le code suivant :

import requests

nreviews_re = {'com': re.compile('\d[\d,]+(?= customer review)'), 
               'co.uk':re.compile('\d[\d,]+(?= customer review)'),
               'de': re.compile('\d[\d\.]+(?= Kundenrezens\w\w)')}
no_reviews_re = {'com': re.compile('no customer reviews'), 
                 'co.uk':re.compile('no customer reviews'),
                 'de': re.compile('Noch keine Kundenrezensionen')}

def get_number_of_reviews(asin, country='com'):                                 
    url = 'http://www.amazon.{country}/product-reviews/{asin}'.format(country=country, asin=asin)
    html = requests.get(url).text
    try:
        return int(re.compile('\D').sub('',nreviews_re[country].search(html).group(0)))
    except:
        if no_reviews_re[country].search(html):
            return 0
        else:
            return None  # to distinguish from 0, and handle more cases if necessary

En exécutant ceci avec 1433524767 (qui a un nombre d'avis significativement différent pour les trois pays concernés) j'obtiens :

>> print get_number_of_reviews('1433524767', 'com')
3185
>> print get_number_of_reviews('1433524767', 'co.uk')
378
>> print get_number_of_reviews('1433524767', 'de')
16

J'espère que cela vous aidera

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X