とりあえずWindows用バイナリだけ公開してみます。
Windows用バイナリ 7zip自己展開 2.30M
usage: get.py -d output_dir url url2
usage: get.py -d output_dir -i urllist_file
usage: get.py -d output_dir -i - (urllist is '-' == stdin)
これもpython初心者&プログラミング素人が書いたあまり綺麗じゃないスクリプトです。
いろいろと作法にのっとっていないところがありそうです。
2008-12-21: CVS版のurlgrabberを参考にしてHTTPSでもkeep-aliveするようにしました。
2008-12-25: keep-aliveが有効な場合、リクエストヘッダにAccept-Encoding: identityが余分に送られるのを抑制してみました。
2008-12-25: socketのtimeoutを10秒にしてみました。
2008-12-27: -no-clobberオプションのバグ修正。オプションを少し追加。
2008-12-27: Accept-Encoding: identityの抑制方法を変更しました。
利用しているライブラリ
☆sys、os、codecs
☆urllib2、httplib
☆urlgrabber、socket
☆StringIO、gzip、zlib
☆optparse
☆collections、gc
です。もしあったら
☆M2Crypto
もつかいます。
保存するファイル名はos.path.basename(url)で決定しています。
urlが'/'で終わる場合にはindex.htmlとしています。
リダイレクトについてはデフォルトは無視するようにしました。
オプションでリダイレクトされたURLを元に決定するように変更しました。
--no-clobberオプションを追加しました。同じファイル名が存在する場合には、上書きしないでスキップします。
デフォルトは容赦なく上書きです。
urlgrabberはkeep-aliveのために使っています。
urlgrabberがない場合はkeep-aliveできません。