Amazon指定カテゴリのベストセラーを表示
Amazonではベストセラーに関するフィードを配信しています。フィードはカテゴリ毎に配信されていますので、特定のカテゴリのフィードを取得することが可能です。
例えば本のベストセラーのページを見てみます。カテゴリは「本 > コンピュータ・インターネット > プログラミング」です。
画面を下の方へスクロールしていくと、このカテゴリに関するRSSフィードのURLが取得できます。
このカテゴリのフィードURLは次のようになります。
http://www.amazon.co.jp/rss/bestsellers/books/492352/ref=pd_ts_rss_link
実際には次のように記述します。
var feedurl = "http://www.amazon.co.jp/rss/bestsellers/books/492352/ref=pd_ts_rss_link"; var feed = new google.feeds.Feed(feedurl); feed.setNumEntries(8); feed.load(dispfeed);
フィードURLが作成できれば、あとは通常のフィードと同じようにダウンロードしてエントリを表示します。なお、取得できるベストセラー商品に関して、フィードに含まれる各エントリの本文の中に商品画像などの情報が含まれています。
アソシエイトタグの設定
アマゾンアソシエイトに参加されている方は、フィードオプションとしてタグを指定することが可能です。次のようにAmazonのホームページ上で説明されています。
「tag」パラメータにご自分のアソシエイトIDを指定してフィードをダウンロードすると、取得されたフィードに含まれる各リンクにご自分のアソシエイトIDが設定されます。
例えばアソシエイトIDが「hogehoge-33」だった場合はフィードURLは次のようになります。
http://www.amazon.co.jp/rss/bestsellers/books/492352/ref=pd_ts_rss_link&tag=hogehoge-33
サンプルプログラム
それでは簡単なサンプルで試してみます。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>Google AJAX Feed API テスト</title> <script type="text/javascript" src="http://www.google.com/jsapi?key=(key)"> </script> <script type="text/javascript" src="./js/script3_1.js"> </script> </head> <body> <p>Google AJAX Feed API テスト</p> <div id="feed"></div> </body> </html>
google.load("feeds", "1");
function initialize() {
var feedurl = "http://www.amazon.co.jp/rss/bestsellers/books/ref=pd_ts_rss_link?tag=hogehoge-33";
var feed = new google.feeds.Feed(feedurl);
feed.setNumEntries(8);
feed.load(dispfeed);
function dispfeed(result){
if (!result.error){
var container = document.getElementById("feed");
var htmlstr = "";
htmlstr += "<p>[タイトル]" + result.feed.title + "</p>";
htmlstr += "<ul>";
for (var i = 0; i < result.feed.entries.length; i++) {
var entry = result.feed.entries[i];
htmlstr += "<li>"
htmlstr += '<a href="' + entry.link + '">' + entry.title + '</a> ';
htmlstr += '<img src="http://b.hatena.ne.jp/entry/image/large/' + entry.link + '" />';
htmlstr += entry.content;
htmlstr += "</li>"
}
htmlstr += "</ul>";
container.innerHTML = htmlstr;
}else{
alert(result.error.code + ":" + result.error.message);
}
}
}
google.setOnLoadCallback(initialize);
上記を実際にブラウザ見てみると次のように表示されます。
( Written by Tatsuo Ikura+ )
