亚马逊最近更改了他们的API,这似乎现在无法使用这些API在Amazon上访问我的愿望清单。除了屏幕剪彩外,有人知道做任何方法吗?也许是一些第三方服务(我不介意仅使用公共数据)?

有帮助吗?

解决方案

对于屏幕刮擦,紧凑的布局样式可能会有所帮助: http://bililite.com/blog/2010/10/31/hacking-my-way-to-to-an-amazon-wishlist-widget/

更新

我在Google电子表格中对自己进行了一些黑客攻击,并设法获得了2个基本实现。

使用Google Apps脚本:

在单元格A1中输入您的愿望清单ID。将以下内容复制并粘贴到Google Apps脚本(工具>脚本>脚本编辑器)中,并运行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,我有一些与标题 /价格相匹配的正则概率。不确定为什么,但是显示了基本想法。

使用Google电子表格功能

在单元格A1中输入您的愿望清单ID。

将以下功能键入A2。它将在您的愿望清单中的每个项目的ID字符串中填充单元格,并在其下方填充。

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

将以下函数键入B2,该功能将从ID字符串中提取ASIN:

=right(A2, 10)

将以下功能键入B3,该功能将获取B2中ASIN的报价列表,并显示标题:

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

在B4中键入以下功能,该功能将获取B2中ASIN的报价列表,并显示所有价格:

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

其他提示

一个叫贾斯汀·斯卡佩蒂(Justin Scarpetti)的人创建了一个非常整洁的“ API”,它刮擦您的愿望清单并以JSON格式返回数据。

这是检索亚马逊愿望列表数据的一点API。没有官方的API,因为亚马逊几年前将其关闭。屏幕刮擦的唯一方法。

Amazon Wish Lister使用PHPQUERY(基于JQuery的服务器端CSS3选择器驱动的DOM API)来刮擦Amazon的愿望列表页面,并导出到JSON,XML或PHP数组对象。

如果您想在自己的网站上托管您的愿望列表,则非常完美。

资源: 亚马逊希望李斯特

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top