2009-05-15 22 views
2

ウェブサイトからtarファイルをダウンロードするのに少し助けが必要です。ウェブサイトは、あなたが望むファイルを選択して提出するフォームとして設定され、ダウンロードウィンドウが開き、あなたがその場所を選ぶことができます。ポストメソッドとPythonを使用してファイルをダウンロードする

私はコードで同じことをしようとしています(手動で各ファイルを選択する必要はありません)。これまで私は応答を返すためにPython 2.5.2を取得しましたが、socket._fileobjectにあります。私は今、それを自分のコンピュータ上のファイルに変換する方法がわかりません。同じように、

myfile = open('myfile.tar', 'wb') 
shutil.copyfileobj(response.fp, myfile) 
myfile.close() 

response.fpはあなたから読み取ることができるファイルのようなオブジェクトである:以下

は、Pythonシェルの出力と、私は

Python 2.5.2 on win32 

IDLE 1.2.2  
>>> import urllib 
>>> import urllib2 
>>> url = 'http://website/getdata.php' 
>>> values = {'data[]': 'filex.tar'} 
>>> data = urllib.urlencode(values) 
>>> req = urllib2.Request(url,data) 
>>> response = urllib2.urlopen(req) 
>>> response 
addinfourl at 22250280 whose fp = <socket._fileobject object at 0x01534570 
>>> response.fp 
socket._fileobject object at 0x01534570 

答えて

2

追加これを講じてきた措置でありますファイルを開く。 shutil.copyfileobj()は、ファイルのようなオブジェクトから読み込み、その内容を別のものに書き込むシンプルな関数です。

+1

あなたが好きな方法でresponse.fpをコピーできますが、シャットルは間違いなく、よくテストされたコードを簡単に再利用するために最適です。 –

+1

これで問題は解決しました。 –

関連する問題