API рекламы продуктов Amazon: получите средний рейтинг клиентов

Есть ли прямой способ получить средний рейтинг клиентов (1-5 звезд) при использовании веб-сервиса Amazon для получения информации о продукте? Вот параметры, которые я использую:

Service=AWSECommerceService
Version=2011-08-01
Operation=ItemSearch
SearchIndex=Books
Title=A Game of Thrones
ResponseGroup=Large

Я ожидал, что у него будет оценка клиентов 4.5 и общее количество отзывов 2177. Но вместо этого я получаю в ответ следующее.

<CustomerReviews><IFrameURL>http://www.amazon.com/reviews/iframe?...</IFrameURL></CustomerReviews>

Есть ли способ получить общий рейтинг клиентов, кроме чтения значения <IFrameURL/> , сделать еще один HTTP-запрос для этой страницы отзывов, а затем очистить экран от HTML? Такой подход хрупок, поскольку Amazon может легко изменить структуру страницы отзывов, что приведет к остановке моего приложения.


person Drew    schedule 26.11.2011    source источник


Ответы (6)


Вы можете соскрести отсюда. Просто замените asin на то, что вам нужно.

http://www.amazon.com/gp/customer-reviews/widgets/average-customer-review/popover/ref=dpx_acr_pop_?contextId=dpx&asin=B000P0ZSHK

person JeffBezos    schedule 09.07.2015
comment
Это продлится? Надеюсь, он не сломается в будущем! - person Micro; 04.10.2015
comment
не попадет ли ваш IP в черный список, если вы очистите такую ​​ссылку? - person rockyraw; 27.12.2015
comment
Это возможный способ, но только на несколько царапин. Когда вы ищете несколько элементов, эта страница будет запрашивать кодировку для блокировки ботов. Возможно, вам нужно очистить URL-адрес iframe из первого запроса amazon-api - person Jokus; 27.01.2017

Насколько мне известно, Amazon изменил свой API, поэтому больше невозможно получить информацию о рейтинге. Если вы проверите эту ссылку, заметка гласит:

По состоянию на 8 ноября 2010 г. в содержимом запроса возвращается только URL-адрес iframe.

Однако при тестировании с параметрами, которые вы использовали для получения Iframe, кажется, что теперь даже Iframe больше не работает. Таким образом, даже в последней справке по API в главе «Мотивирование клиентов к покупке» полностью отсутствует часть «обзоры».

Однако: поскольку мне также очень интересно, можно ли каким-то образом получить информацию о рейтинге - возможно, даже не используя API Amazon, а API конкурентов для получения информации о рейтинге отзывов - я назначу вознаграждение, если кто-нибудь может предоставить что-то полезное по что. Баунти будет установлен в этой теме через два дня.

person omni    schedule 02.01.2012

Вы можете получить URL-адрес обзора iframe, а затем использовать CSS, чтобы расположить его так, чтобы отображался только рейтинг в звездах. Это не идеально, поскольку вы не получаете необработанных данных, но это простой способ добавить рейтинг на свою страницу.

Пример этого в действии - http://spamtech.co.uk/osition-content-inside-an-iframe/

person Steve    schedule 15.05.2012
comment
Что ж, это сразу бросает тень на идею схемы Google XML. Думаю, я буду вручную выставлять рейтинг клиентским проектам. - person Imperative; 07.07.2013
comment
Ссылка не работает - person James Geddes; 12.03.2020

Вот сценарий VBS, который очищает рейтинг. Вставьте приведенный ниже код в текстовый файл, переименуйте его в Test.vbs и дважды щелкните, чтобы запустить его в Windows.

sAsin = InputBox("What is your ASIN?", "Amazon Standard Identification Number (ASIN)", "B000P0ZSHK")
if sAsin <> "" Then
  sHtml = SendData("http://www.amazon.com/gp/customer-reviews/widgets/average-customer-review/popover/ref=dpx_acr_pop_?contextId=dpx&asin=" & sAsin)
  sRating = ExtractHtml(sHtml, "<span class=""a-size-base a-color-secondary"">(.*?)<\/span>")
  sReviews = ExtractHtml(sHtml, "<a class=""a-size-small a-link-emphasis"".*?>.*?See all(.*?)<\/a>")
  MsgBox sRating & vbCrLf & sReviews
End If

Function ExtractHtml(sHtml,sPattern)
  Set oRegExp = New RegExp
  oRegExp.Pattern    = sPattern
  oRegExp.IgnoreCase = True
  Set oMatch = oRegExp.Execute(sHtml)
  If oMatch.Count = 1 Then
      ExtractHtml = Trim(oMatch.Item(0).SubMatches(0))
  End If
End Function

Function SendData(sUrl)
  Dim oHttp 'As XMLHTTP30
  Set oHttp = CreateObject("Msxml2.XMLHTTP")
  oHttp.open "GET", sUrl, False
  oHttp.send
  SendData = Replace(oHttp.responseText,vbLf,"")
End Function
person Igor Krupitsky    schedule 04.10.2015

Amazon полностью удалил поддержку доступа к информации о рейтингах / обзорах из своего API. В документах упоминается элемент ответа в форме рейтинга клиентов, но это тоже не работает.

Покупки в Google с использованием точек обзора для некоторых обзоров и другие источники

person Struggler    schedule 26.03.2014

Это невозможно из PAPI. Вам либо нужно очистить его самостоятельно, либо вы можете использовать для этого другие бесплатные / более дешевые сторонние альтернативы.

Для этого мы используем API amazon-price от RapidAPI, он поддерживает цену / рейтинг / получение количества отзывов до 1000 товаров в одном запросе.

person Corei13    schedule 12.04.2019