I was looking through Amazon sellers the other day, and as always I was checking for a large volume of high ratings for each. While looking at these highly rated sellers I realized that Amazon does not allow you to see all of the reviews at once, or easily filter by bad ratings, and so I decided to write a single purpose web service that will return as many pages as you wish to read (going back as far as one year), and filter by low ratings (so that I could read why a seller might be given a poor rating).
I started by intercepting the XML HTTP Request (XHR) sent to the Amazon back-end during feedback paging. After finding this service and documenting what fields were required I quickly determined that I could use any URL that yields seller details and find both the US and Canadian reviews. If a seller did not have Canadian reviews the US ones appear in their place in a robust fashion.
Now I needed to build several components:
Amazon feedback page fetcher
Page formatter, including filter
Web service, including front-end
I wrote the page fetcher with a couple of lines of Python with urllib2, and similarly the formatter and filterer with BeatifulSoup, taking out the list items from the feedback JSON and taking the appropriate sections (rating, description, name/date). Putting it all together I created a view that would serve the form for a get request (e.g., loading the page from a browser), and perform the query to gather Amazon feedback for post requests (e.g., from the form). The final product can be found at [http://josh.myhugesite.com/amazon] (please use responsibly).
Hint, this is the permanent link, click on the icons to the upper-left to return my website