Вопрос

Amazon недавно изменил свои API, которые, кажется, сейчас нет возможности получить доступ к моему списку желаний на Amazon программно, используя эти API. Кто-нибудь знает способ сделать это помимо экрана? Может быть, какая-то сторонняя услуга (я не против работать только с публичными данными)?

Это было полезно?

Решение

Для очистки экрана может быть полезен стиль компактной макета: http://bililite.com/blog/2010/10/31/hacking-my-way-to-an-amazon-wishlist-widget/

Обновлять

Я сделал свой собственный взлом в электронных таблицах Google и удалось получить 2 основных реализации.

Использование сценариев приложений Google:

Введите свой идентификатор списка желаний в ячейку A1. Скопируйте и вставьте следующее в скрипт приложений Google (Инструменты> Скрипты> Редактор сценариев) и запустите функцию 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);
}

Nb, у меня есть некоторые проблемы с Regex, соответствующей заголовку / цене. Не уверен, почему, но показывает основную идею.

Использование функций электронных таблиц Google

Введите свой идентификатор списка желаний в ячейку A1.

Введите следующую функцию в A2. Он заполнит ячейку и все ниже ее строками идентификатора для каждого элемента в вашем списке желаний:

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

Введите следующую функцию в B2, который извлечет ASIN из строки ID:

=right(A2, 10)

Введите следующую функцию в B3, которая принесет список предложений для ASIN в B2 и отобразить заголовок:

=importXML("http://www.amazon.co.uk/gp/offer-listing/"&B2, "//h1")

Введите следующую функцию в B4, которая принесет список предложений для ASIN в B2 и отобразить все цены:

=concatenate(importXML("http://www.amazon.co.uk/gp/offer-listing/"&B2, "//span[@class='price']"))

Другие советы

Парень по имени Джастин Скарпетти создал действительно аккуратный «API», который царапает ваш список желаний и возвращает данные в формате JSON.

Это небольшой API для получения данных списка желаний Amazon. Официального API нет, так как Amazon закрыла его пару лет назад. Единственный способ обойти это ... царапина экрана.

Amazon Wise Lister использует Phpquery (серверная сторона CSS3-управляемого DOM API на основе JQUERY) для соскребания страницы списка пожеланий Amazon и экспорта в объект JSON, XML или PHP Array.

Идеально, если вы хотите размещать свой список желаний на своем собственном веб -сайте.

Источник: Amazon желаю Листера

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top