亚马逊产品广告API:获得平均客户评级

时间:2011-11-26 15:34:53

标签: amazon-web-services amazon-product-api

使用亚马逊的网络服务获取任何产品信息时,是否有直接获得平均客户评级(1-5星级)的方法?以下是我正在使用的参数:

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>

除了reading the <IFrameURL/> value之外,有没有办法获得整体客户评分,为该评论页面发出另一个HTTP请求,然后屏幕抓取HTML?这种方法很脆弱,因为亚马逊可以轻松更改评论页面结构,这会破坏我的应用程序。

6 个答案:

答案 0 :(得分:21)

答案 1 :(得分:4)

据我所知,亚马逊改变了它的API,因此不再可能获得reviewrank信息。如果您选中this Link注释:

  

截至2010年11月8日,请求中仅返回iframe网址   内容。

然而,使用你用来获取Iframe的params进行测试似乎现在甚至iframe都不再适用了。因此,即使在“激励客户购买”一章中的最新API参考中,“评论”部分也完全缺失。

然而:因为我也非常感兴趣,如果它仍然可能以某种方式得到reviewrank信息 - 甚至可能不使用亚马逊API但竞争对手的API来获得评论排名信息 - 如果任何人可以提供我将设置赏金一些有用的东西。 Bounty将在两天内在this topic中设置。

答案 2 :(得分:2)

您可以获取iframe审核网址,然后使用css进行定位,以便只显示星级评分。由于您没有获取原始数据,这并不理想,但这是将评分添加到您的网页的简单方法。

此操作示例 - http://spamtech.co.uk/positioning-content-inside-an-iframe/

答案 3 :(得分:2)

这是一个可以降低评级的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

答案 4 :(得分:0)

亚马逊已完全取消了对其API中访问评分/审核信息的支持。文档以客户评级的形式提及响应元素,但这也不起作用。

Google使用Viewpoints购物进行一些评论和other sources

答案 5 :(得分:0)

从PAPI无法做到这一点。您要么需要自己抓取它,要么可以使用其他免费/廉价的第三方替代品。

为此,我们使用RapidAPI的amazon-price API,它支持在单个请求中提取多达1000种产品的价格/评分/评论计数。