使用亚马逊的网络服务获取任何产品信息时,是否有直接获得平均客户评级(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?这种方法很脆弱,因为亚马逊可以轻松更改评论页面结构,这会破坏我的应用程序。
答案 0 :(得分:21)
你可以从这里刮掉。只需用你需要的东西替换asin。
答案 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种产品的价格/评分/评论计数。