前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python的requests模块进行下载限速

python的requests模块进行下载限速

作者头像
xiny120
发布2019-12-24 15:29:05
3.3K0
发布2019-12-24 15:29:05
举报
文章被收录于专栏:毛毛v5毛毛v5

python的requests模块进行下载带宽限制,进行现在速度限制,避免拉爆服务器。开启requests的stream=True就可以进行渐进式下载,然后再适当的sleep一下。就可以减少下载带宽,限制下载速度了。

代码语言:javascript
复制
            # NOTE the stream=True parameter below
            recvlen = 0
            tickss = time.time()
            with requests.get(mp3url, stream=True) as r:
                r.raise_for_status()
                with open(mp3f, 'wb') as f:
                    for chunk in r.iter_content(chunk_size=30720): 
                        if chunk: # filter out keep-alive new chunks
                            f.write(chunk)
                            recvlen = recvlen + len(chunk)
                            time.sleep(0.1)
                            # f.flush()


            tickse = time.time()
            #f=requests.get(mp3url)
            #with open(mp3f,"wb") as code:
            #    code.write(f.content)
            print("------------------------")
            print(title)
            print(mp3f)
            print(mp3url)
            print("长度:",recvlen)
            print("耗时:",tickse-tickss,"秒")
            print("++++++++++++++++++++++++")
            time.sleep(3)

限速结果日志如下:

代码语言:javascript
复制
长度: 2950970
耗时: 9.922253608703613 秒

长度: 3413255
耗时: 11.447856426239014 秒

长度: 3465066
耗时: 11.52188777923584 秒

长度: 5089296
耗时: 16.877254486083984 秒

长度: 2969808
耗时: 9.891138792037964 秒

长度: 5777092
耗时: 19.198574781417847 秒

长度: 6185409
耗时: 20.51071047782898 秒
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档