Programowy dostęp do listy życzeń Amazon?

Amazon niedawno zmienił swoje API, które i wydaje się, że teraz nie ma możliwości dostępu do mojej listy życzeń na Amazon programowo za pomocą tych API. Czy ktoś wie jak to zrobić poza scrapowaniem ekranu? Może jakaś usługa innej firmy (nie mam nic przeciwko pracy tylko z danymi publicznymi)?

Author: Mogsdad, 2010-12-31

2 answers

W przypadku skrobania ekranu, styl kompaktowego układu może być pomocny: http://bililite.com/blog/2010/10/31/hacking-my-way-to-an-amazon-wishlist-widget/

Update

Zrobiłem kilka własnych hacking w arkuszach kalkulacyjnych google i udało się uzyskać 2 podstawowe implementacje działa.

Korzystanie Ze Skryptów Google Apps:

Wpisz swój identyfikator listy życzeń w komórce A1. Skopiuj i wklej następujące elementy do skryptu google apps (narzędzia > Skrypty > Edytor skryptów), i uruchom funkcję getWishlist:

function getWishlist(){
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];
  var wishlistId = sheet.getRange('a1').getValue(); 
  var response = UrlFetchApp.fetch("http://www.amazon.co.uk/registry/wishlist/" + wishlistId + "?layout=compact").getContentText();
  var asinRegex = /name="item.([\d]+)\.(?:[A-Z0-9]+).([A-Z0-9]+).*/g
  while (match = asinRegex.exec(response)) {
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];
    var rowIndex = Number(match[1])+2;
    var asin = match[2];
    setRow(sheet, rowIndex, asin);
    var offers = UrlFetchApp.fetch("http://www.amazon.co.uk/gp/offer-listing/" + asin).getContentText();    
    setRow(sheet, rowIndex, asin, 
           getFirstMatch(/class="producttitle">(.+)</g, offers),
           getFirstMatch(/class="price">(.+)</g, offers));
  }  
  Browser.msgBox("Finished");
}

function getFirstMatch(regex, text) {
  var match = regex.exec(text);
  return (match == null) ? "Unknown" : match[1];
}

function setRow(sheet, index, a, b, c) {
  sheet.getRange('a' + index).setValue(a);
  sheet.getRange('b' + index).setValue(b);
  sheet.getRange('c' + index).setValue(c);
}

​ ​ Uwaga, mam kilka sond z regex pasujących do tytułu / ceny. Nie wiem dlaczego, ale pokazuje podstawową ideę.

Korzystanie Z Funkcji Arkusza Kalkulacyjnego Google

Wpisz swój identyfikator listy życzeń w komórce A1.

Wpisz następującą funkcję do A2. Będzie wypełniać komórkę i wszystkie znajdujące się pod nią ciągi id dla każdego elementu listy życzeń:

=importXML("http://www.amazon.co.uk/registry/wishlist/"&A1&"?layout=compact", "//*[starts-with(@name, 'item.')]/@name")

Wpisz następującą funkcję do B2, która wyodrębni asin z łańcuch id:

=right(A2, 10)

Wpisz następującą funkcję do B3, która pobierze ofertę dla asin w B2 i wyświetli tytuł:

=importXML("http://www.amazon.co.uk/gp/offer-listing/"&B2, "//h1")
Aby uzyskać dostęp do asin w B2, wpisz w B4 następującą funkcję, która wyświetli listę ofert dla asin w B2 i wyświetli wszystkie ceny:
=concatenate(importXML("http://www.amazon.co.uk/gp/offer-listing/"&B2, "//span[@class='price']"))
 15
Author: robd,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-01-18 12:29:33

Facet o imieniu Justin Scarpetti stworzył naprawdę zgrabne "api", które skrobnie listę życzeń i zwraca dane w formacie json.

Jest to małe API do pobierania danych z listy życzeń Amazon. Nie ma oficjalne API, jak Amazon zamknął go kilka lat temu. Jedyny sposób mniej więcej... screen scraping.

Amazon Wish Lister używa PHPQUERY (po stronie serwera CSS3 selector driven DOM API oparte na jQuery), aby zeskrobać stronę z listą życzeń Amazona i eksportować do JSON, XML, lub obiekt tablicy PHP.

Idealny, jeśli chcesz samodzielnie wyświetlić listę życzeń strona internetowa.

Źródło: Amazon Wish Lister

 14
Author: Andy Davies,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-08 13:50:42