home ホーム search 検索 -  login ログイン  | reload edit datainfo version cmd icon diff delete  | help ヘルプ

日記/2009/05/02/image_collectorを改造してみた。 (v1)

日記/2009/05/02/image_collectorを改造してみた。 (v1)

日記 / 2009 / 05 / 02 / image_collectorを改造してみた。 (v1)
id: 377 所有者: msakamoto-sf    作成日: 2009-05-02 23:10:15
カテゴリ: Python 

日記/2009/05/02/画像DLPythonツール"image_collector"を作ってみた。で作ってみたimage_collectorですが、実際に使ってみた結果をフィードバックして改造しました。

http://coderepos.org/share/browser/lang/python/image_collector

  • 画像URLのホスト名を指定できるようにした。(--hostnames "ホスト名1 ホスト名2 ...")
  • 処理間隔をミリ秒単位で指定できるようにした。(-i, --interval)
  • ソケットエラーが発生した場合のリトライ回数を指定できるようにした。(-r, --retry)
  • <img>のsrc属性 or <a>のhref属性を無視するオプションを追加。(--noimgtag, --noatag)
  • "-n, --dry-run" オプションを追加。

特にソケットエラー発生時のリトライを実装したのが予想以上に助かりました。実際では結構ソケットエラーが発生していましたが、リトライ実装後は大体1度目のリトライで再接続して画像を取得できるようになり、取りこぼしが激減しました。

また "--noimgtag, --noatag" も思ったよりも便利でした。
imgタグではリサイズされたサムネイル画像のURLが指定されていて、aタグの方で元サイズの画像が指定されているリンクが結構多かったのです。
そうした場合に "--noimgtag" を指定して、aタグだけを拾うようにすると無駄も無いし、ネットワーク通信の負担もページによっては半分近くに減らせます。

あと、実際にアクセスする前に ".txt", ".html" でURLが終わるのを除去するようにしたのですが、これも予想以上に効果があり、無駄なリクエストを減らせました。

Pythonの演習として試しに作ってみたスクリプトですが、予想以上に便利に使えて、個人的には満足です。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2009-05-02 23:17:46
md5:25c1dd164401092945a588c9591bdc45
sha1:7b0862b36e7a9836a1fbe2e5440e964d7c7e586a
コメント
コメントを投稿するにはログインして下さい。