日記/2009/05/02/画像DLPythonツール"image_collector"を作ってみた。で作ってみたimage_collectorですが、実際に使ってみた結果をフィードバックして改造しました。
http://coderepos.org/share/browser/lang/python/image_collector
特にソケットエラー発生時のリトライを実装したのが予想以上に助かりました。実際では結構ソケットエラーが発生していましたが、リトライ実装後は大体1度目のリトライで再接続して画像を取得できるようになり、取りこぼしが激減しました。
また "--noimgtag, --noatag" も思ったよりも便利でした。
imgタグではリサイズされたサムネイル画像のURLが指定されていて、aタグの方で元サイズの画像が指定されているリンクが結構多かったのです。
そうした場合に "--noimgtag" を指定して、aタグだけを拾うようにすると無駄も無いし、ネットワーク通信の負担もページによっては半分近くに減らせます。
あと、実際にアクセスする前に ".txt", ".html" でURLが終わるのを除去するようにしたのですが、これも予想以上に効果があり、無駄なリクエストを減らせました。
Pythonの演習として試しに作ってみたスクリプトですが、予想以上に便利に使えて、個人的には満足です。