postメソッドとPythonを使用してファイルをダウンロードします
質問
私は、ウェブサイトからダウンロードしたtarファイルを取得して少しの助けを必要としています。あなたが場所を選択するためにあなたがしたいファイルを選択し、[送信]をクリックし、フォームし、ダウンロードウィンドウが開きますよう、ウェブサイトが設定されます。
私は(私は、各ファイルを選ぶ取扱説明書を持っていない)コードで同じことをやろうとしています。これまでのところ私は、応答を返すための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
解決
これを追加します:
myfile = open('myfile.tar', 'wb')
shutil.copyfileobj(response.fp, myfile)
myfile.close()
response.fp
はあなただけで開いているファイルのように、から読み取ることができるファイルのようなオブジェクトです。 shutil.copyfileobj()
は、一つのファイルのようなオブジェクトから読み込み、別のものに、その内容を書き込み、単純な関数である。
所属していません StackOverflow