从URL下载返回的Zip文件 [英] Download Returned Zip file from URL
问题描述
如果我有一个URL,当在Web浏览器中提交该URL时,会弹出一个对话框来保存一个zip文件,我将如何在Python中捕获并下载该zip文件?
If I have a URL that, when submitted in a web browser, pops up a dialog box to save a zip file, how would I go about catching and downloading this zip file in Python?
推荐答案
大多数人建议使用请求
(如果有)和请求
文档建议将此用于从网址下载并保存原始数据:
Most people recommend using requests
if it is available, and the requests
documentation recommends this for downloading and saving raw data from a 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)
由于答案询问有关下载并保存压缩文件,我没有详细介绍读取该压缩文件的方法。
Since the answer asks about downloading and saving the zip file, I haven't gone into details regarding reading the zip file. See one of the many answers below for possibilities.
如果由于某些原因您无权访问请求
,则可以改用 urllib.request
。
If for some reason you don't have access to requests
, you can use urllib.request
instead. It may not be quite as robust as the above.
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
。
Finally, if you are using Python 2 still, you can use 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())
这篇关于从URL下载返回的Zip文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!