Python不会下载基于URL的zip文件

时间:2019-11-25 22:23:40

标签: python download python-requests

因此,我有一个从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”)

1 个答案:

答案 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可能有问题。