Net::Amazon のメモ
2006-10-17-2
[Programming]
PerlでアマゾンWebサービスをいじるときは、
いつも、LWP で XML 取ってきて正規表現によるパターンマッチや
XML::Simple を使ってごにょごにょしているんだけど、
「CPANにあるなら使おうキャンペーン」中なので、
いまさらながら、某アルファギーク氏が昔「一番好きなPerlモジュール」
として挙げていたことで知られる Net::Amazon を試してみる。
Cache::File[2006-10-17-1]と連携できるのが嬉しいね。
Michael Schilli / Net-Amazon-0.35 - search.cpan.org
http://search.cpan.org/~mschilli/Net-Amazon-0.35/
ところで、locale を jp にすると、発売日(ReleaseDate)の情報が
取れないのですが、これってそういうもの?
(追記061021: データがないのが取れてなかっただけの模様)
amazon がらみのサービスでよく「発売日が取得できなくうんぬん」とか
いうアナウンスがあったりするけど、それってこれがらみ?
あと、authors() と Authors() の使い分けが面倒くさい。
素直に自前のモジュール(Yasazon::Amazon とかある)を使い続けるかな…。
以下、動作確認サンプルプログラム:
いつも、LWP で XML 取ってきて正規表現によるパターンマッチや
XML::Simple を使ってごにょごにょしているんだけど、
「CPANにあるなら使おうキャンペーン」中なので、
いまさらながら、某アルファギーク氏が昔「一番好きなPerlモジュール」
として挙げていたことで知られる Net::Amazon を試してみる。
Cache::File[2006-10-17-1]と連携できるのが嬉しいね。
Michael Schilli / Net-Amazon-0.35 - search.cpan.org
http://search.cpan.org/~mschilli/Net-Amazon-0.35/
ところで、locale を jp にすると、発売日(ReleaseDate)の情報が
取れないのですが、これってそういうもの?
(追記061021: データがないのが取れてなかっただけの模様)
amazon がらみのサービスでよく「発売日が取得できなくうんぬん」とか
いうアナウンスがあったりするけど、それってこれがらみ?
あと、authors() と Authors() の使い分けが面倒くさい。
素直に自前のモジュール(Yasazon::Amazon とかある)を使い続けるかな…。
以下、動作確認サンプルプログラム:
#!/usr/bin/perl use strict; use warnings; use Net::Amazon; use Cache::File; use Encode; binmode STDOUT, ":utf8"; my $cache = Cache::File->new(cache_root => '/var/tmp/cache-amazon', lock_level => Cache::File::LOCK_LOCAL(), default_expires => '24 hours'); my $ua = Net::Amazon->new(token => 'YOUR_TOKEN', locale => 'jp', cache => $cache, max_pages => 1, ); #my $response = $ua->search(asin => '4873110505'); #my $response = $ua->search(blended => "Perl"); my $response = $ua->search(keyword => "Perl", mode => "books-jp"); #my $response = $ua->search(keyword => "Perl", mode => "books"); if (not $response->is_success()) { print "Error: ", $response->message(), "\n"; exit; } print $response->as_string(), "\n"; for ($response->properties()) { print "Asin()\t", $_->Asin(), "\n"; print "ProductName()\t", $_->ProductName(), "\n"; print "Availability()\t", $_->Availability(), "\n"; print "Catalog()\t", $_->Catalog(), "\n"; print "authors()\t", $_->authors(), "\n"; #print "Authors()\t", $_->Authors(), "\n"; print "ReleaseDate()\t", $_->ReleaseDate(), "\n"; print "Manufacturer()\t", $_->Manufacturer(), "\n"; print "ImageUrlSmall()\t", $_->ImageUrlSmall(), "\n"; print "ImageUrlMedium()\t", $_->ImageUrlMedium(), "\n"; print "ImageUrlLarge()\t", $_->ImageUrlLarge(), "\n"; print "ListPrice()\t", $_->ListPrice(), "\n"; print "OurPrice()\t", $_->OurPrice(), "\n"; print "UsedPrice()\t", $_->UsedPrice(), "\n"; print "SalesRank()\t", $_->SalesRank(), "\n"; print "Media()\t", $_->Media(), "\n"; print "NumMedia()\t", $_->NumMedia(), "\n"; print "ProductDescription()\t", $_->ProductDescription(), "\n"; print "CollectiblePrice()\t", $_->CollectiblePrice(), "\n"; print "CollectibleCount()\t", $_->CollectibleCount(), "\n"; print "NumberOfOfferings()\t", $_->NumberOfOfferings(), "\n"; print "UsedCount()\t", $_->UsedCount(), "\n"; print "ThirdPartyNewPrice()\t", $_->ThirdPartyNewPrice(), "\n"; print "ThirdPartyNewCount()\t", $_->ThirdPartyNewCount(), "\n"; print "year()\t", $_->year(), "\n"; print "browse_nodes()\t", $_->browse_nodes(), "\n"; print "similar_asins()\t", $_->similar_asins(), "\n"; }
この記事に言及しているこのブログ内の記事