Amazonのaffiliate program(アソシエイトとアマゾンでは呼ぶ)
はとても面白い。なんていうかこれを利用してサイトを作ろうとすると
おもしろみが増してきてはまってしまう。
アマゾンの画像取得については色々なページがあるんだけど、
javascriptでやってしまうのが当初一番簡単だと思われた。
手動でやるのならこれでもうまくいくのだが、
掲示板方式でwebに来る人たちが参加して自分のお薦めを
登録するページを作りたかったため、
・日本盤の場合
・輸入盤の場合
・画像データがない場合 → no-imageと表示させたい
・日本盤と輸入盤が両方ともある場合
と4つの場合があり、場合分けしてもなかなかうまくいかない。
さらに、画像をコピーしないでリンクすると、
amazonのサーバが遅いので表示に時間がかかったり。
そこで、cgiをいじって、やってみたのが下。
こんな風に表示できる。
wgetを使って画像をいったんディレクトリに保存し、
それを読み込むことで表示させてみた。
C言語初級しか受けていないので、かなり手探りでした。すいません。
# imageディレクトリに画像が既に取得済みかチェック
if (-f "./image/ASIN.09.TZZZZZZZ.jpg"){
$imageurl = "./image/$ASIN.09.TZZZZZZZ.jpg";
} elsif (-f "./image/ASIN.01.TZZZZZZZ.jpg"){
$imageurl = "./image/$ASIN.01.TZZZZZZZ.jpg";
} elsif (-f "./image/$ASIN.dat"){
$imageurl = "./image/no-image.jpg";
} else { #新規画像ゲット開始
system ("wget -nc -P image -q http://images-jp.amazon.com/images/P/$ASIN.09.TZZZZZZZ.jpg"); # 日本盤取得
$imageurl = "./image/$ASIN.09.TZZZZZZZ.jpg";
if (-s "./image/$ASIN.09.TZZZZZZZ.jpg" == 807){ # 日本盤がデータ無し
system ("wget -nc -P image -q http://images-jp.amazon.com/images/P/$ASIN.01.TZZZZZZZ.jpg"); # 輸入盤取得
$imageurl = "./image/$ASIN.01.TZZZZZZZ.jpg";
unlink ("./image/$ASIN.09.TZZZZZZZ.jpg") # 無駄データ削除
}
if (-s "./image/$ASIN.01.TZZZZZZZ.jpg" == 807){ # 輸入盤がデータ無し
$imageurl = "./image/no-image.jpg";
open(OUT, "> ./image/$ASIN.dat"); # 画像無し用dat作成
unlink ("./image/$ASIN.01.TZZZZZZZ.jpg") # 無駄データ削除
}
}
参考にしたサイト
http://www.geocities.jp/horiuchimasaru/wget.html
http://hail2u.net/blog/coding/air_2.html
http://a-h.parfe.jp/intro.html
http://tohoho.wakusei.ne.jp/wwwcgi.htm
その後、
Amazon XSLTを使用したものの方が遙かにインタラクティブに出来ました。
http://www.j-love.info/ino/archives/000164.html