从URL下载返回的Zip文件

user1229108:

如果我有一个URL,当在Web浏览器中提交该URL时,会弹出一个对话框来保存一个zip文件,我将如何在Python中捕获并下载该zip文件?

寄件人:

大多数人建议使用requests它(如果可用),而requests 文档建议使用此方法从URL下载和保存原始数据:

import requests 

def download_url(url, save_path, chunk_size=128):
    r = requests.get(url, stream=True)
    with open(save_path, 'wb') as fd:
        for chunk in r.iter_content(chunk_size=chunk_size):
            fd.write(chunk)

由于答案询问有关下载和保存 zip文件的问题,因此我没有介绍有关阅读zip文件的详细信息。有关可能性,请参见下面的众多答案之一。

如果由于某种原因您无权访问requests,则可以urllib.request改用。它可能没有上述功能那么强大。

import urllib.request

def download_url(url, save_path):
    with urllib.request.urlopen(url) as dl_file:
        with open(save_path, 'wb') as out_file:
            out_file.write(dl_file.read())

最后,如果您仍在使用Python 2,则可以使用urllib2.urlopen

from contextlib import closing

def download_url(url, save_path):
    with closing(urllib2.urlopen(url)) as dl_file:
        with open(save_path, 'wb') as out_file:
            out_file.write(dl_file.read())

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章