【发布时间】:2017-02-28 19:05:11
【问题描述】:
我正在使用 requests lib 下载文件,我得到了很多信息。关于响应,例如:大小、类型和日期。但我需要获得下载速度并为其设置最大值和最小值。我怎样才能获得下载速度?
代码如下:
import requests
import sys
link = "https://upload.wikimedia.org/wikipedia/commons/4/47/PNG_transparency_demonstration_1.png"
file_name = "downloaded.png"
response = requests.get(link, stream=True)
with open(file_name, "wb") as f:
print "Downloading %s" % file_name
response = requests.get(link, stream=True)
total_length = int(response.headers.get('content-length'))
print response.headers["content-type"]
print total_length / 1024, "Kb"
print int(response.headers["Age"]) * (10 ** -6), "Sec"
print response.headers["date"]
if total_length is None: # no content length header
f.write(response.content)
else:
dl = 0
for data in response.iter_content(chunk_size=4096):
dl += len(data)
f.write(data)
done = int(50 * dl / total_length)
sys.stdout.write("\r[%s%s]" % ('=' * done, ' ' * (50-done)) )
sys.stdout.flush()
这是输出:
Downloading downloaded.png
image/png
213 Kb
0.054918 Sec
Wed, 19 Oct 2016 08:43:47 GMT
[==================================================]
【问题讨论】:
-
伙计,我想获得以 kb 为单位的下载速度,我不需要进度条。
-
链接的问题包含您需要的所有信息,即使它还包含您不需要的信息。
标签: python network-programming urllib