因此,我有一个从Houzz生成的URL,如果我将该URL放入浏览器,则可以很好地下载ZIP。
我正在尝试下载带有几种类型选项的zip文件,而我所得到的是文件是使用0数据制成的。只是一个空文件
finalurl = 'https://theurltomyzip/thefile.zip'
import requests
import urllib
import urllib2
file_name = 'C:\\Users\\inventoryuser\\Downloads\\test.zip'
file_name2 = 'C:\\Users\\inventoryuser\\Downloads\\test2.zip'
file_name3 = 'C:\\Users\\inventoryuser\\Downloads\\test3.zip'
print "downloading with urllib"
urllib.urlretrieve(finalurl, file_name)
print "downloading with urllib2"
f = urllib2.urlopen(finalurl)
data = f.read()
with open(file_name2, "wb") as code:
code.write(data)
print "downloading with requests"
r = requests.get(finalurl)
with open(file_name3, "wb") as code:
code.write(r.content)
如上所述,结果是3个完全空白的“ zip”文件。
注意:如果将“ finalurl”的字符串值放入浏览器,它将立即下载该zip文件。 (我还尝试了另一次迭代,但没有成功,“ allow_redirects = True”)
答案 0 :(得分:0)
尝试一下:
import urllib.request
url = 'https://theurltomyzip/thefile.zip'
remote = urllib.request.urlopen(url) # read remote file
data = remote.read() # read from remote file
remote.close() # close urllib request
local = open('download.zip', 'wb') # write binary to local file
local.write(data)
local.close() # close file
注意:我已经用ftp://ftp.wwpdb.org/pub/pdb/data/structures/all/pdb/pdb106d.ent.gz
对其进行了测试我认为您的代码很好,URL可能有问题。