对亚马逊愿望清单的程序化访问?
-
14-10-2019 - |
题
亚马逊最近更改了他们的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数组对象。
如果您想在自己的网站上托管您的愿望列表,则非常完美。
资源: 亚马逊希望李斯特