2011-11-26 10 views
13

Podczas korzystania z usługi internetowej Amazon w celu uzyskania informacji o dowolnym produkcie, czy istnieje bezpośredni sposób na uzyskanie średniej oceny klientów (1-5 gwiazdek)? Oto parametry Używam:Interfejs API reklam produktowych Amazon: uzyskaj średnią ocenę klientów

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

spodziewałbym to mieć ocena klientów o 4,5, a łączne opinie 2177. Ale zamiast uzyskać następujące w odpowiedzi.

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

Czy istnieje sposób, aby uzyskać ogólną ocenę klientów, oprócz dla reading the <IFrameURL/> value, dzięki czemu kolejne żądania HTTP dla tej strony opinii, a następnie ekran skrobanie HTML? Takie podejście jest delikatne, ponieważ Amazon może łatwo zmienić strukturę stron recenzji, która spowodowałaby upadek mojej aplikacji.

Odpowiedz

4

O ile mi wiadomo, Amazon zmienił swoje API, więc nie jest już możliwe, aby uzyskać informacje o recenzjach. Jeśli zaznaczysz this Link jako nuta NOK:

dniem 8 listopada 2010 roku, tylko URL iframe jest zwracany w żądanie treści.

Jednak testowanie z parametrami używanymi do uzyskania elementu iframe wydaje się, że teraz nawet iframe nie działa. Dlatego nawet w najnowszym API Reference w rozdziale "Motywowanie klientów do zakupu" brakuje części "recenzji".

Jednak jestem również bardzo zainteresowany, jeśli jest to możliwe, aby uzyskać informacje o recenzjach - może nawet nie używając interfejsu API Amazona, ale API konkurencji, aby uzyskać informacje o rankingu - ustawię nagrodę, jeśli ktokolwiek będzie mógł w tym pomóc. Bounty zostanie ustawione na this topic w dwa dni.

2

Możesz pobrać URL podglądu elementu iframe, a następnie użyć go do ustawienia go tak, aby wyświetlała się tylko ocena gwiazdkowa. To nie jest idealne, ponieważ nie dostajesz surowych danych, ale możesz łatwo dodać ocenę do swojej strony.

Próbkę tego w akcji - http://spamtech.co.uk/positioning-content-inside-an-iframe/

+0

Cóż, to rzuca ideę schematu Google XML zaraz za oknem. Chyba będę ręcznie wprowadzać ocenę projektów klientów. – Imperative

0

Amazon ma całkowicie usunąć wsparcie dla dostępu Ocena/przegląd informacji z ich API. Dokumenty wspominają o elemencie Response w postaci oceny klienta, ale to też nie działa.

Google zakupy przy użyciu Viewpoints dla niektórych opinii i other sources

17
+0

Czy to będzie trwało? Mam nadzieję, że nie złamie się w przyszłości! – Micro

+0

czy twoje IP nie zostanie umieszczone na czarnej liście, jeśli usuniesz taki link? – rockyraw

+0

Jest to możliwy sposób, ale tylko dla kilku skrobaków. Kiedy szukasz wielu przedmiotów, strona ta zażąda captcha do blokowania botów.Być może musisz zeskanować adres URL elementu iframe z pierwszego żądania amazon-api – Jokus

2

Oto skrypt VBS, które zeskrobać ocenę. Wklej poniższy kod do pliku tekstowego, zmień jego nazwę na Test.vbs i kliknij dwukrotnie, aby uruchomić w systemie 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