2

Webサイトからダウンロードするtarファイルを取得するのに少し助けが必要です。Webサイトは、必要なファイルを選択して[送信]をクリックするフォームとして設定され、ダウンロードウィンドウが開いて場所を選択できます。

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

以下は、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
4

1 に答える 1

2

これを追加します:

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

response.fpは、開いているファイルと同じように、読み取ることができるファイルのようなオブジェクトです。 shutil.copyfileobj()は、あるファイルのようなオブジェクトから読み取り、その内容を別のオブジェクトに書き込む単純な関数です。

于 2009-05-15T16:38:53.373 に答える