[Python-ml-jp 4802] Re: ダウンロードのリスタート (urllib)
十河 満
coolhead @ a1.mbn.or.jp
2009年 8月 4日 (火) 08:27:53 JST
ソガワです。
Mireさん、Wgetのresume機能って今まで使ったことなかったんですが
強力ですね。
↓↓↓
C:\Program Files\GnuWin32\bin>wget -c -v -P G:\FreeBSD_7.2 ftp://ftp.jp.freebsd.org/pub/FreeBSD/ISO-IMAGES-i386/7.2/7.2-RELEASE-i386-dvd1.iso.gz
(省略)
==> SIZE 7.2-RELEASE-i386-dvd1.iso.gz ... 2040369172
==> PASV ... 完了しました。 ==> REST 786808832 ... 完了しました。
==> RETR 7.2-RELEASE-i386-dvd1.iso.gz ... 完了しました。
長さ: 2040369172 (1.9G), 1253560340 (1.2G) 残っています
↑↑↑
ここまで即終わって残部をダウンロードし始めますね。
最後にお詫びですが、7.2-RELEASE-i386-dvd1.isoだけ更に.gzになっていて、
実際には.isoのmd5やsha256でした。合う訳け無いよ。お騒がせしました。
mired_in_a_slump さんは書きました:
> 只今、Pythonリハビリ中のMireと申します。
>
> read()による空読みにご着眼の様ですが、read()の空読みでは、変数に
> 収めないだけで、ネット上の送信はされますので無意味と思います。基本
> 的にサーバ側がresume機能に対応していて、その機能を使う仕組みとする
> 必要があるのではないでしょうか?
>
> 当方もurllibしか使った経験はありませんが、resume機能に興味があった
> ので少し調べてた結果ですが、下の3候補で対応してはいかがですか?
>
>
> 1. HTTPとFTPの両方ならば、当方がよくやる逃げで、popen()で、別途
> インストールした「wget」のresume機能を使う方法。
> 2. FTPならば、ftplibで書きなおせば標準で対応可能です。
> 3. python.orgでパッケージ検索するとその辺の対応をした urlgrabber
> http://pypi.python.org/pypi/urlgrabber/3.1.0 が公開されています。
> また、FTPで検索すると他にも候補はある様です。
> http://pypi.python.org/pypi?:action=browse&c=320
>
>
> # 困ったらpython.orgのPackage Indexに入ってキーワード検索すると
> # 使えるものが結構あったりしますので活用すると幸せになれますよ。
>
>
>
>> ソガワと申します。またお世話になります。
>>
>> FreeBSD7.2のCDやDVDのisoイメージをFirefoxで落としていたのですが、
>> 何せ携帯のHSDPAなのでmd5やsha256が一致せず、それではとftpも対応
>> してるurllibで簡単なダウンローダーを記述しました。ついでにhashlib
>> でmd5とsha256も組み込みました。CDは全部落とせたのですが欲張って
>> DVDも落としておこうと思い、起動して就寝したところ、眼が覚めると
>> 携帯電話会社から接続を切られてました。調べると800MBは落ちてるので、
>> リスタートの機能を付けたいと思い色々調べたのですが、良い方法が解り
>> ません。諸兄のお知恵をお借りしたいと思いますので、宜しくお願い致し
>> ます。
>> なお、urllibのソースでretrieve()を見ると
>> bs = 1024*8
>> size = -1
>> read = 0
>> blocknum = 0
>> :
>> while 1:
>> block = fp.read(bs)
>> if block == "":
>> break
>> read += len(block)
>> tfp.write(block)
>> blocknum += 1
>> if reporthook:
>> reporthook(blocknum, bs, size)
>>
>> こんな感じでしたので、素人考えでfp.read(bs)で空読みする関数が有れ
>> ばなーと思った次第です。それにしても今の時代 bs = 1024*8 は些か小
>> さ過ぎるのではないかと思いました。それともRFCで規定してるのでしょ
>> うか?
>> なお、上記ライブラリの一部を引用してますが権利的に問題あればご指摘
>> 下さい。
>> 以上、宜しくお願い申し上げます。
>>
>> _______________________________________________
>> Python-ml-jp mailing list
>> Python-ml-jp @ python.jp
>> http://www.python.jp/mailman/listinfo/python-ml-jp
>>
>>
> _______________________________________________
> Python-ml-jp mailing list
> Python-ml-jp @ python.jp
> http://www.python.jp/mailman/listinfo/python-ml-jp
>
>
Python-ml-jp メーリングリストの案内