使用post方法和python下载文件

时间:2009-05-15 16:33:32

标签: python urllib2

我需要一点帮助才能从网站上下载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

1 个答案:

答案 0 :(得分:2)

附加:

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

response.fp是一个类似文件的对象,您可以从中读取,就像打开文件一样。 shutil.copyfileobj()是一个简单的函数,它从一个类文件对象中读取并将其内容写入另一个。