亚马逊最近改变了他们的API,现在似乎没有办法使用这些API以编程方式访问我在亚马逊上的WishList。除了抓屏之外,还有谁知道怎么做呢?也许是一些第三方服务(我不介意只使用公共数据)?
发布于 2011-01-10 05:22:01
对于屏幕抓取,紧凑的布局样式可能会有所帮助:http://bililite.com/blog/2010/10/31/hacking-my-way-to-an-amazon-wishlist-widget/
更新
我在google电子表格中做了一些自己的修改,并设法实现了两个基本的实现。
使用谷歌应用脚本的:
在单元格A1中输入您的愿望列表ID。将以下内容复制并粘贴到谷歌应用程序脚本(工具>脚本>脚本编辑器)中,然后运行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,我遇到了一些正则表达式匹配标题/价格的问题。不知道为什么,但显示了基本的想法。
使用谷歌电子表格函数的
在单元格A1中输入您的愿望列表ID。
在A2中键入以下函数。它将使用wishlist中每一项的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']"))发布于 2013-03-08 21:50:42
一个叫Justin Scarpetti的家伙创建了一个非常巧妙的"api“,它可以抓取你的愿望列表并以json格式返回数据。
这是一个检索亚马逊愿望列表数据的小应用程序接口。没有官方的API,因为亚马逊在几年前关闭了它。唯一的办法就是..。屏幕抓取。
Amazon Wish Lister使用phpQuery (基于jQuery的服务器端CSS3选择器驱动的DOM )来抓取亚马逊的愿望列表页面,并将其导出为JSON、XML或PHP Array对象。
如果你想在你自己的网站上展示你的愿望清单,那就完美了。
https://stackoverflow.com/questions/4568209
复制相似问题