2010-12-31 29 views
27

Amazon cambió recientemente sus API, y parece que no hay forma ahora de acceder a WishList en Amazon programáticamente usando 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)?Acceso programático a la lista de deseos de Amazon?

Respuesta

15

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/

actualización

he hecho un poco de hacking de mi propio cálculo de Google y consiguió 2 implementaciones básicas de trabajo.

mediante secuencias de comandos de Google Apps:

Tipo tu 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 estoy seguro por qué, pero muestra la idea básica.

Uso de las funciones de hoja de cálculo de Google

Introduce tu ID de deseos en la celda A1.

Escriba la siguiente función 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") 

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

=right(A2, 10) 
Tipo

la siguiente función 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 siguiente función en B4, que buscar la oferta lista para el asin en B2 y mostrar todos los precios:

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

que enlazan parece prometedor, gracias! – StasM

+0

acaba de probar esto, sustituyendo amazon.com por amazon.co.uk. obteniendo errores de consulta xpath. ¿algunas ideas? –

+0

@ LarryG.Wapnitsky Este código se basa en Amazon como lo fue hace 3 años, por lo que el HTML ha cambiado probablemente. ¿Puede compartir más detalles sobre el error que está viendo o compartir su hoja de cálculo de Google y voy a echar un vistazo. – robd

12

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 los datos de la Lista de deseos de Amazon. No hay una API oficial de , ya que Amazon la cerró hace un par de años. La única manera alrededor de eso ... raspado de la pantalla.

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 a JSON, XML o PHP matriz de objetos.

Perfecto si desea alojar mostrar su lista de deseos en su propio sitio web .

Fuente: Amazon Wish Lister

+20

¡Hola! ¡Ese soy yo! :) – doitlikejustin

+0

Hola Andy, ¿Puedo usar esto en el extremo móvil? en caso afirmativo, por favor, avíseme el camino. – Kumar

+1

Hola @ Kumar, lo siento, pero no puedo proporcionar ningún consejo sobre la integración de esto con un back-end móvil. Pero con el resultado de JSON, deberías ser capaz de usar esto en el desarrollo de aplicaciones móviles sin demasiados problemas. –

Cuestiones relacionadas