Pregunta

Amazon cambió recientemente su API que y parece que no hay forma ahora para acceder a mi lista de deseos en Amazon programación utilizando estas API. Alguien sabe alguna manera de hacerlo, además de la pantalla-raspado? Tal vez algún servicio de terceros (no me importa trabajar sólo con los datos públicos)?

¿Fue útil?

Solución

Para captura de imágenes, el estilo de diseño compacto podría ser útil: http://bililite.com/blog/2010/10/31/hacking-my-way-to-an-amazon-wishlist-widget/

Actualizar

He hecho un poco de hacking de mi propio hojas de cálculo de Google y ha logrado obtener 2 implementaciones básicas de trabajo.

Uso de secuencias de comandos de Google Apps:

Escriba su ID de deseos en la celda A1. Copiar y pegar el siguiente en un Google Apps Script (Herramientas> Scripts> Scripts Editor), y ejecutar la función 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, estoy teniendo algunos problemas descritos con expresiones regulares coincida con el título / precio. No sé por qué, pero muestra la idea básica.

Funciones Uso de hojas de cálculo de Google

Escriba su Lista de ID en la celda A1.

Escriba la función siguiente en A2. Se rellenará la célula y todas por debajo con las cadenas de ID para cada artículo en su lista de deseos:

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

Escriba la siguiente función en B2, que se va a extraer la asin de la cadena de ID:

=right(A2, 10)

Escriba la función siguiente en B3, para que se capturen la oferta lista para el asin en B2 y mostrar el título:

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

Escriba la función siguiente en B4, para que se capturen la oferta lista para el asin en B2 y visualizar todos los precios:

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

Otros consejos

Un tipo llamado Justin Scarpetti ha creado un "API" muy ordenado que rasca la lista y devuelve los datos en formato JSON.

Esta es una pequeña API para recuperar datos de Amazon lista de deseos. No hay API oficial, ya que Amazon lo cerró hace un par de años. La única forma alrededor de esa ... captura de imágenes.

Amazon Wish Lister utiliza phpQuery (del lado del servidor selector CSS3 impulsado DOM API basada en jQuery) para raspar la página y las exportaciones lista de deseos de Amazon para JSON, XML o PHP matriz de objetos.

Es perfecto si desea mostrar su lista de deseos de acogida por su cuenta página web.

Fuente: Amazon Wish Lister

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top