« たしかに | メイン | キタのかな? »

2003年10月11日

[blog] ひとまず完成(Amazon WebService for Movable Type)

とりあえず完成.Net::Amazonを使わないで,HTTP::Requestを使う方向で作成してみました.
まあ単純に GET Request を http://xml.amazon.com/onca/xml3 に投げてその結果を XML::Simple で解析してるだけなんだけどね. 一応こんな感じSource は....もう少し洗練されるまで待って(ぉ. 要点だけまとめると,
  • HTTP::Request で XML を取得.
    my $ua  = LWP::UserAgent->new;
    my $req = HTTP::Request->new( GET => $url );
    my $res = $ua->request( $req );
    my $xml = $res->content();
    
  • XML::Simple で構文解析
    my $ref = XMLin( $xml );
    my $details   = $ref->{Details};
    foreach my $detail ( @$details ){
        my $asin  = $detail->{Asin};
        my $price = $detail->{ListPrice};
        my $name  = $detail->{ProductName};
        print "$asin\t$name\t$price\n";
    }
    
    ちなみに結果が複数無い場合,例えば一つの ASIN で検索した場合などは [$details] が配列ではないので注意が必要.逃げる手段としては,
    $details = [ $details ] if( $details !~ /ARRAY/ );
    
    などとするのがいいかも.
とまあこんな感じ.いまは ASIN からしか検索無理なんで,名前・ジャンルなどからの結果も表示できるようにしたいところ.

Posted by Rust Stnard at 00:21