Net::Amazon を使う

2009年8月に AmazonAPI が変更になり、認証が必要になってから初めて AmazonAPI を利用する。
サンプルコードは下記のようになる。詳細なメソッドの説明は Net::Amazon の perldoc を参照する。

#!/usr/bin/env perl
use strict;
use warnings;
use utf8;
use Encode;
use Net::Amazon;

my $access_key_id     = 'your_access_key';
my $secret_access_key = 'your_secret_access_key';
my $keyword           = 'jquery'; # キーワードは日本語そのままで問題なし
my $mode              = 'books';
my $locale            = 'jp';

my $aws = Net::Amazon->new(
    token      => $access_key_id,
    secret_key => $secret_access_key,
    locale     => $locale
);

my $response = $aws->search(keyword => $keyword, mode => 'books');

if($response->is_success()) {
    print encode('utf-8', $response->as_string()), "\n";
} else {
    print "Error: ", $response->message(), "\n";
}

実行結果

[1]  高木 悠介, "携帯サイト コーディング&デザイン", 2008, ¥ 2,709, 4797348488
[2]  日経BPコンサルティング Webコンサルティング部, "Google Analytics 完全解説",
     2009, ¥ 2,940, 4901823272
[3]  益子 貴寛/堀内 敬子/小林 信次/千貫 りこ/伊藤 学/山田 あかね/西畑 一馬,
     "現場のプロから学ぶXHTML+CSS", 2008, ¥ 2,940, 4839929734
[4]  大藤 幹, "XHTML&CSS超高速コーディング術", 2009, ¥ 2,100, 4883376710
[5]  デザインラボ編集部, "Webデザインの基本ルール-プロに学ぶ、一生枯れない永久不滅テクニック
     (Design Lab+ 1-3)", 2009, ¥ 1,890, 4797354437
[6]  Douglas Crockford, "JavaScript: The Good Parts
     —「良いパーツ」によるベストプラクティス", 2008, ¥ 1,890, 4873113911
[7]  David Flanagan, "JavaScript 第5版", 2007, ¥ 4,410,
     4873113296
[8]  Steve Souders/スティーブ サウダーズ, "ハイパフォーマンスWebサイト
     —高速サイトを実現する14のルール", 2008, ¥ 1,890, 487311361X
[9]  古籏 一浩, "改訂第4版 JavaScript ポケットリファレンス", 2006, ¥ 2,499,
     4774129240
[10] ネクスト, "jQueryプラグインブック—「軽量」「高機能」 JavaScriptライブラリの導入と活用!
     (I・O BOOKS)", 2009, ¥ 1,995, 4777514897
[11] 高橋 登史朗, "jQuery入門—魔法のJavaScriptリファレンス&サンプル", 2009, ¥
     3,129, 4798024511
[12] 羽田野 太巳, "標準DOMスクリプティング
     JavaScript+DOMによるWebアプリデザインの基礎", 2007, ¥ 2,730,
     4797336382
[13] 葛西 秋雄, "jQuery+JavaScript実践リファレンス—Webデザインを強化するための",
     2009, ¥ 2,940, 4883376494
[14] 沖林 正紀, "jQueryで作る Ajaxアプリケーション", 2008, ¥ 2,919,
     4774134902
[15] 葛西 秋雄, "CSS + jQuery Webデザインテクニック", 2009, ¥ 2,940,
     4861006511
[16] MdN編集部, "JavaScript & Ajax プロが教える“本当の使い方”", 2009, ¥
     2,940, 4844360590
[17] 葛西 秋雄, "jQuery UI+厳選プラグイン41 実践サンプル集", 2009, ¥ 2,940,
     4798024570
[18] 河村 嘉之/川尻 剛/福沢 知海, "Java開発者のための Ajax実践開発入門", 2007, ¥
     3,570, 4774132977
[19] MdN編集部, "XHTML+CSS プロが教える“本当の使い方”", 2009, ¥ 2,940,
     4844360663
[20] 西畑 一馬, "Web制作の現場で使う jQueryデザイン入門 (WEB PROFESSIONAL)",
     2010, ¥ 3,497, 4048684116
[21] 古籏 一浩/石丸 健太郎, "Ext JS入門—リッチUIなWebサイトをつくるAjaxフレームワーク",
     2009, ¥ 3,360, 479802323X
[22] Christophe Porteneuve, "Prototype & script.aculo.us
     —JavaScriptライブラリによるAjaxアプリケーション開発", 2008, ¥ 3,360,
     4873113725
[23] 葛西 秋雄, "ASP.NET 3.5+jQuery Ajax実践サンプル集", 2009, ¥
     3,990, 4798023299
[24] Michael Morrison, "Head First JavaScript
     —頭とからだで覚えるJavaScriptの基本", 2008, ¥ 4,200, 4873113733
[25] 佐藤 和人, "基礎 Ajax + JavaScript", 2006, ¥ 2,940,
     4844323458
[26] 清野 克行, "図解でわかる Ajaxのすべて", 2006, ¥ 2,100, 4534040784
[27] 古籏 一浩, "Ajaxライブラリリファレンス", 2007, ¥ 2,940, 4861004314
[28] 高橋 和也/竹添 直樹/里見 知宏, "独習JavaScript", 2008, ¥ 2,940,
     4798116750
[29] 相澤 裕介, "jQueryプログラミング入門—Ajaxにも使えるJavaScriptライブラリ",
     2009, ¥ 3,150, 4877832254
[30] 清野 克行, "Ajaxによる業務アプリケーション開発", 2008, ¥ 3,990,
     479802080X
[31] Danny Goodman, "JavaScript & DHTMLクックブック 第2版
     —Webエキスパート必携テクニック集", 2008, ¥ 4,410, 4873113709
[32] 岡田 克司, "10日でおぼえる JavaScript 入門教室 新版", 2008, ¥ 2,520,
     4798114340
[33] 掌田 津耶乃, "Ajaxライブラリ徹底活用 JavaScript Webプログラミング", 2009, ¥
     2,940, 4798024317
[34] Jeremy Keith, "DOM Scripting 標準ガイドブック
     ~やさしく学ぶ、JavaScriptとDOMによるWebデザイン~ (Web Designing
     BOOKS)", 2007, ¥ 3,369, 4839922373
[35] 羽田野 太巳, "AJAX Webアプリケーション アイデアブック", 2005, ¥ 194,
     4798011967
[36] 沖林 正紀, "実践!Ajaxフレームワーク Prototype.js/Script.aculo.us",
     2008, ¥ 2,940, 4839928258
[37] 古籏一浩, "Ajaxライブラリで かんたんインターフェイスデザイン", 2008, ¥ 2,940,
     4861005698
[38] 中村享介, "WebクリエイティブのためのDOM Scripting (Web Designing
     Books)", 2007, ¥ 3,689, 4839922268
[39] 古籏 一浩, "実践!Ajaxフレームワーク jQuery", 2008, ¥ 2,940,
     4839928541

検索結果のソートについて

Search results can be sorted in various ways, depending on the type of product returned by the search. If a sort parameter isn't specified in the request, the results will be ordered as if the salesrank value is specified.

http://search.cpan.org/~boumenot/Net-Amazon-0.59/lib/Net/Amazon/Request/Sort.pm

応用編

#!/usr/bin/env perl
use strict;
use warnings;
use utf8;
use Encode;
use Net::Amazon;

my $access_key_id     = 'your_access_key';
my $secret_access_key = 'your_secret_access_key';
my $keyword           = 'jquery';
my $mode              = 'books';
my $locale            = 'jp';
my $sort              = 'daterank';

my $aws = Net::Amazon->new(
    token      => $access_key_id,
    secret_key => $secret_access_key,
    locale     => $locale
);

my $response = $aws->search(
    keyword => $keyword,
    mode    => 'books',
    sort    => $sort
);

if($response->is_success()) {
    foreach my $item ($response->properties) {
        print encode('utf-8', $item->ProductName()), "\n";
        print encode('utf-8', $item->ReleaseDate()), "\n";
        print encode('utf-8', $item->ASIN()), "\n";
        print encode('utf-8', $item->OurPrice()), "\n";
        print encode('utf-8', $item->url()), "\n\n";
    }
} else {
    print "Error: ", $response->message(), "\n";
}