PhantomJS ( http://phantomjs.org/ ) を見ることをお勧めします。phantomjs を使用してページ全体をキャプチャし、画像の位置とサイズのデータをキャプチャするワークフローを想像します。次に、PIL (または GraphicsMagick だけでも) を使用して、キャプチャ ページをその画像だけにトリミングします。
PhantomJS は JavaScript でプログラムされていますが、ページをロードし、ページ内の画像を見つけてサイズと位置をクエリし、キャプチャをスナップするには、数行の JS コードしか必要ありません。
編集(コメントへの返信):もちろん。jQuery または任意の他のツールを使用できます。以下は、ページを開いてページ内の画像のサイズ/位置を取得するためのphantomjsの短い例です:
var page = require('webpage').create();
page.open(URL, function(status) {
var img_attr = page.evaluate(function(){
var el = $("img#SpecialID");
var result = el.offset(); // Returns top, left
result.width = el.width();
result.height = el.height();
return result;
});
console.log(img_attr); //Obviously, you'd want to write that to disk instead
page.render(OUTPUT_FILE);
});
そのため、console.log を修正してレコードをディスクに書き込み、URL と OUTPUT_FILE のコマンド ライン オプションを追加し、エラー処理を追加すると、Python コードから呼び出す便利なユーティリティが得られます。