2011-07-01 5 views
5

python-urllib2経由でHTTP経由でファイルをダウンロードするにはどうすればいいですか?私は、インターネットから画像をダウンロードするのpythonにパーサを書いた

import urllib2 

for i in xrange(1,10): 
    r = urllib2.urlopen('http://example.com/'+str(i)+'.gif')) 
    f = open('C:\\' + str(i) + '.gif', 'w+') 
    f.write(r.read()) 
    f.close() 

画像を開くことができません。 Windowsでは「画像作成中にエラーが発生しました」と表示されます。しかし、私は、受け取ったファイルのすべての行が元のファイルのこの行より1バイト少ないことがわかりましたが、どちらも似ています。正しいファイルをダウンロードするには?

+3

をあなたはそれが動作 –

+0

「+ W」ではない、と「wb」を指定する必要があります。ありがとうございました。 =) – shunter

答えて

13

あなたはオープンで、 "バイナリ" フラグbを配置する必要があるかもしれないウィンドウを操作... Windows上で

f = open(r'C:\\'+str(i)+'.gif','wb') 
+0

コメントしますか? –

5

あなたが 'WB' を指定する必要はなく、 'W +'

5

ます試してみることができますurllib.urlretrieve - それはほとんどの細部を単独で処理します。
だからあなたのコードは次のようになります。Windowsの

for i in xrange(1,10): 
    urllib.urlretrieve('http://example.com/'+str(i)+'.gif'), 'C:\'+str(i)+'.gif','w+') 
関連する問題