14

当使用亚马逊的网络服务获取任何产品的信息时,有没有直接的方法来获得平均客户评分(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>

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

4

6 回答 6

24

你可以从这里刮。只需将 asin 替换为您需要的即可。

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

于 2015-07-09T22:48:48.613 回答
4

据我所知,亚马逊更改了它的 API,因此无法再获取评论排名信息。如果您检查此链接,请注意:

自 2010 年 11 月 8 日起,请求内容中仅返回 iframe URL。

但是,使用您用来获取 Iframe 的参数进行测试,现在似乎连 Iframe 都不再工作了。因此,即使在“激励客户购买”一章的最新 API 参考中,“评论”部分也完全缺失。

但是:由于我也很感兴趣,如果它仍然有可能以某种方式获取评论排名信息 - 甚至可能不使用亚马逊 API,而是使用竞争对手 API 来获取评论排名信息 - 如果有人可以提供一些有用的信息,我将设置赏金那。赏金将在两天后在此主题中设置。

于 2012-01-02T12:25:14.020 回答
2

您可以抓取 iframe 评论网址,然后使用 css 定位它,以便仅显示星级。这并不理想,因为您没有获得原始数据,但这是一种将评分添加到页面的简单方法。

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

于 2012-05-15T11:25:25.753 回答
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
于 2015-10-04T07:21:44.650 回答
0

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

谷歌购物使用Viewpoints获取一些评论和其他来源

于 2014-03-26T17:20:16.143 回答
0

这在 PAPI 中是不可能的。您要么需要自己抓取它,要么可以使用其他免费/更便宜的第三方替代品。

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

于 2019-04-12T16:22:59.920 回答