python-从URL下载返回的Zip文件
如果我有一个URL,当在Web浏览器中提交该URL时,会弹出一个对话框来保存一个zip文件,我将如何在Python中捕获并下载该zip文件?
7个解决方案
142 votes
据我所知,正确的方法是:
import requests, zipfile, StringIO
r = requests.get(zip_file_url, stream=True)
z = zipfile.ZipFile(StringIO.StringIO(r.content))
z.extractall()
当然,您需要检查GET是否成功完成r.ok。
对于python 3+,将StringIO模块与io模块一起使用,并使用BytesIO而不是StringIO:以下是提到此更改的发行说明。
import requests, zipfile, io
r = requests.get(zip_file_url)
z = zipfile.ZipFile(io.BytesIO(r.content))
z.extractall()
yoavram answered 2019-11-19T00:21:41Z
7 votes
使用zipfile。返回值是一个文件状对象,您可以zipfile,传递给zipfile,依此类推。
senderle answered 2019-11-19T00:21:04Z
7 votes
在此博客文章的帮助下,我仅使用requests就可以了。奇怪的stream的要点是,这样我们就不必在大型请求上调用content,这将需要一次全部处理ÿ