api - Acceso programático a la lista de deseos de Amazon?
amazon-web-services google-apps-script (2)
Para el raspado de la pantalla, 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
Hice algunos hackers en las hojas de cálculo de google y logré que funcionaran 2 implementaciones básicas.
Usando las secuencias de comandos de Google Apps:
Escriba su ID de lista de deseos en la celda A1. Copie y pegue lo siguiente en un script de aplicaciones de google (Herramientas> Scripts> Editor de scripts) y ejecute 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 con expresiones regulares que coinciden con el título / precio. No estoy seguro por qué, pero muestra la idea básica.
Usar las funciones de hoja de cálculo de Google
Escriba su ID de lista de deseos en la celda A1.
Escriba la siguiente función en A2. Rellenará la celda y todo debajo de ella con las cadenas de identificación para cada elemento 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 extraerá el asin de la cadena id:
=right(A2, 10)
Escriba la siguiente función en B3, que buscará la lista de ofertas para el asin en B2 y mostrará el título:
=importXML("http://www.amazon.co.uk/gp/offer-listing/"&B2, "//h1")
Escriba la siguiente función en B4, que buscará la lista de ofertas para el asin en B2 y mostrará todos los precios:
=concatenate(importXML("http://www.amazon.co.uk/gp/offer-listing/"&B2, "//span[@class=''price'']"))
Recientemente, Amazon cambió sus API, y parece que ahora no hay forma de acceder a WishList en Amazon mediante el uso programático de estas API. ¿Alguien sabe alguna forma de hacerlo además del raspado de la pantalla? ¿Tal vez algún servicio de terceros (no me importa trabajar solo con datos públicos)?
Un tipo llamado Justin Scarpetti ha creado una "API" muy limpia que raspa tu lista de deseos y devuelve los datos en formato json.
Esta es una pequeña API para recuperar los datos de Amazon Wish List. No hay una API oficial, ya que Amazon la cerró hace un par de años. La única forma de evitarlo ... raspando la pantalla.
Amazon Wish Lister utiliza phpQuery (API DOM basada en el selector de CSS3 del servidor basada en jQuery) para rastrear la página Wish List de Amazon y exportar a JSON, XML o PHP Array Object.
Perfecto si desea alojar mostrar su lista de deseos en su propio sitio web.
Fuente: Amazon Wish Lister