我需要一点帮助才能从网站上下载tar文件。该网站设置为您选择所需文件的表单,然后单击“提交”,然后打开下载窗口供您选择位置。
我正在尝试在代码中执行相同的操作(因此我不必手动选择每个文件)。到目前为止,我已经得到了python 2.5.2来返回一个响应,但它在socket._fileobject
中,我现在不知道如何将它转换为我的计算机上的文件。
下面是python shell的输出和我采取的步骤
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
答案 0 :(得分:2)
附加:
myfile = open('myfile.tar', 'wb')
shutil.copyfileobj(response.fp, myfile)
myfile.close()
response.fp
是一个类似文件的对象,您可以从中读取,就像打开文件一样。 shutil.copyfileobj()
是一个简单的函数,它从一个类文件对象中读取并将其内容写入另一个。