古い記事
ランダムジャンプ
新しい記事
ルールにのっとり、amazon の商品写真は amazon のサイトへ直接リンクしていますが、10年後20年後を考えるとローカルに保存しておいた方が良い気がします。

amazon のサービスが終わってるかもしれませんし、リンクが変更されてるかもしれませんし。
画像がなくても現物があればいいのですが、現在持っている本がそのころに手元にあるかどうか分からないですしね。

もちろん現在の商品紹介でローカルに保存した画像を使うことはありません。
あくまで未来へ向けての保存用です。

というわけで、Linux で以下のような手順で全画像を保存しておきました。
perl と wget が必要です。

1. まず amazon 画像の URL を取り出し重複を削ったうえで、wget のコマンドを生成します。Blog のファイルは *.html で指定しています。コマンドラインで以下を実行:
% perl -F"<" -ane 'for(@F){$hash{$1}++
if(m|(http://.+?/images/P/.+?.jpg)|)}
END{for(keys%hash){print"wget $_\n"}}' *.html > a.sh
出力結果 (a.sh) はこんな感じ:
wget https://images-jp.amazon.com/images/P/4274065979.09.THUMBZZZ.jpg
wget https://images-jp.amazon.com/images/P/B0007V1SSA.09.THUMBZZZ.jpg
wget https://images-jp.amazon.com/images/P/489100455X.01.MZZZZZZZ.jpg
...

2. 生成した wget のコマンドを一気に実行します。これで勝手に次々とダウンロードされます。
% sh a.sh

日々更新するサイトならば、定期的に差分を取りながらダウンロードするように改造すると良いですね。

あと、楽天の商品写真も保存用にローカルに取って来ておいた方が良いかもしれません。というか、こちらの画像の方が早く消えそう。

(ちなみに今回のように「コマンドを生成するスクリプトを書いて作業を自動化する」というのは「その場しのぎプログラミング」[2003-12-09-3]でよく使っている手法です。)

追記050527: より良い方法が紹介されていました。wget の -i, -N オプション。これで行こっと。
- clmemo@aka: Amazon の画像をローカルに保存
<http://at-aka.blogspot.com/2005/05/amazon-amazonchangelogperlwget.html>
% perl -F"<" -ane 'for(@F){$hash{$1}++
if(m|(http://.+?/images/P/.+?.jpg)|)}
END{for(keys%hash){print"$_\n"}}' *.html > a.txt
% wget -N -i a.txt