亚马逊最近更改了他们的API,现在似乎无法使用这些API以编程方式访问我在亚马逊上的WishList。除了屏幕抓取之外,有人知道有什么方法吗?也许有些第三方服务(我不介意只使用公共数据)?
答案 0 :(得分:15)
对于屏幕抓取,紧凑的布局样式可能会有所帮助:http://bililite.com/blog/2010/10/31/hacking-my-way-to-an-amazon-wishlist-widget/
<强>更新强>
我在谷歌电子表格中做了一些自己的黑客攻击,并设法让2个基本实现工作。
使用Google Apps脚本:
在单元格A1中输入您的心愿单ID。将以下内容复制并粘贴到Google Apps脚本(工具&gt;脚本&gt;脚本编辑器)中,然后运行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,我正在使用正则表达式匹配标题/价格的一些probs。不知道为什么,但显示了基本的想法。
使用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']"))
答案 1 :(得分:13)
一个名叫Justin Scarpetti的人创造了一个非常整洁的“api”,它会刮掉你的愿望清单并以json格式返回数据。
这是一个用于检索Amazon Wish List数据的小API。没有 官方API,亚马逊几年前关闭它。唯一的办法 围绕着......屏幕刮擦。
Amazon Wish Lister使用phpQuery(服务器端CSS3选择器驱动的DOM) 基于jQuery的API)刮掉亚马逊的愿望清单页面并导出到 JSON,XML或PHP数组对象。
如果您想要自己主持显示愿望清单,那就太完美了 网站。