Domanda

Amazon ha recentemente cambiato le loro API che e sembra che non c'è modo ora per accedere mia lista dei desideri su Amazon programmazione utilizzando tali API. Qualcuno sa un modo per farlo, oltre screen-scraping? Forse qualche servizio di terze parti (non mi dispiace lavorare con solo i dati pubblici)?

È stato utile?

Soluzione

Per screen scraping, lo stile di layout compatto potrebbe essere utile: http://bililite.com/blog/2010/10/31/hacking-my-way-to-an-amazon-wishlist-widget/

Aggiorna

Ho fatto qualche violazione al sistema del mio in fogli di calcolo di Google e sono riusciti a ottenere 2 implementazioni di base di lavoro.

Utilizzo degli script di Google Apps:

Inserisci il tuo ID lista dei desideri nella cella A1. Copiare e incollare il seguente in un Google Apps Script (Strumenti> Script> Script Editor), ed eseguire la funzione 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, sto avendo qualche probs con espressione regolare che corrisponde al titolo / prezzo. Non so perché, ma mostra l'idea di base.

Funzioni Utilizzo di Google Spreadsheet

Inserisci il tuo ID lista dei desideri nella cella A1.

digitare la seguente funzione in A2. Sarà popolare il cellulare e tutti al di sotto con le stringhe ID per ogni elemento nella lista dei desideri:

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

digitare la seguente funzione in B2, che estrarrà l'ASIN dalla stringa ID:

=right(A2, 10)

digitare la seguente funzione in B3, che scaricherà l'offerta messa in vendita per l'ASIN in B2 e visualizzare il titolo:

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

digitare la seguente funzione in B4, che scaricherà l'offerta messa in vendita per l'ASIN in B2 e potrai vedere tutti i prezzi:

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

Altri suggerimenti

Un ragazzo chiamato Justin Scarpetti ha creato un "api" veramente pulito che raschia la tua lista dei desideri e restituisce i dati in formato JSON.

Questo è un po API per recuperare i dati Amazon Wish List. Non c'è API ufficiali, come Amazon spegnerlo un paio di anni fa. L'unico modo intorno a quel ... screen scraping.

Amazon Desideri Lister utilizza phpQuery (lato server selettore CSS3 guidato DOM API basata su jQuery) per raschiare pagina alla Lista Desideri e le esportazioni di Amazon per JSON, XML o PHP Array oggetto.

Perfetto se si desidera visualizzare ospite lista dei desideri sul proprio sito web.

Fonte: Amazon Desideri Lister

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top