计划做这样的多线程下载是因为xx云盘限速厉害,到了恶心的境界,我想试试用多线程下载xx云盘的资源是否能够实现加速。

xx云盘限速阐发

突破xx云盘的限速,利用python实现加速下载-1.jpg (20.14 KB, 下载次数: 0)

2018-6-9 23:10 上传

1. 关于限速,我测度有两种情况:

限制下载资源的带宽限制下载资源时的线程或者进程数目如果限速是第一种,多线程下载也无法提速。但如果是第二种限速,多线程下载理应能够显著提升下载速度,在一定规模内,提速的水平与下载的线程数目成正相关关系。即,下载的线程越多,下载总速度越快。

2. 多线程下载的具体思路如下:

获取待下载文件的年夜小 size将待下载文件分成 n 块,第 i 块年夜小为 subi ,n 个 subi 之和等于 size在下载进程中开启 n 个线程,每个线程负责下载一个 sub所有线程下载的资源依照原有顺序写入文件,完成后,该文件即为下载后的文件

xx云盘多线程加速下载,具体实现如下

1. 获取待下载文件的 size

以下载 python 2.7 为例,下载链接:点我下载,点击该链接时,应该会直接弹出下载窗口。通常,文件年夜小,文件名等信息都在请求 headers 里,python 可用如下代码获取该文件 headers:

突破xx云盘的限速,利用python实现加速下载-2.jpg (62.41 KB, 下载次数: 0)

2018-6-9 23:10 上传

2. 将下载文件分为 n 个小块

这一步其实就是简单的数学题了,下面直接上代码,以 n=5 等分为例,如下:

突破xx云盘的限速,利用python实现加速下载-3.jpg (42.43 KB, 下载次数: 0)

2018-6-9 23:10 上传

可见,文件被 5 等分了,因为 size 不克不及被 5 整除,所以最后一段比之前 4 段都长一些。

3. python下载文件的指定区间

这里先提供一个 python 下载文件的简单代码作为参考,究竟结果越简单,越容易理解:

突破xx云盘的限速,利用python实现加速下载-4.jpg (15.09 KB, 下载次数: 0)

2018-6-9 23:10 上传

假设文件年夜小为 100 个字节,上面这几行代码是下载整个文件的,那么,怎样才能够下载指定区间的文件呢?好比我想下载 20-40 字节段的文件,怎么实现呢?体例如下,还是直接上代码:

突破xx云盘的限速,利用python实现加速下载-5.jpg (22.03 KB, 下载次数: 0)

2018-6-9 23:10 上传

上面几行代码下载的文件即为原文件的 20-40 字节段。

4. python 将内容写到文件指定位置处

第 3 节中提供的代码,实际上是将下载的 20-40 字节段写到 filename 的 0-20 位置了。这样一来,虽然内容被下载了,可是却没有放在文件正确的位置处,最终即使所有字节都下载了,文件也是无法打开的。那么,如何将 20-40 字节段内容写到 filename 的 20-40 位置呢?其实只需要添加一行 seek 代码,指定一下写文件的起始位置即可,如下:

突破xx云盘的限速,利用python实现加速下载-6.jpg (25.46 KB, 下载次数: 0)

2018-6-9 23:10 上传

5. python 多线程高速下载

在第 3、4 节基础上,写下如下函数:

突破xx云盘的限速,利用python实现加速下载-7.jpg (24.37 KB, 下载次数: 0)

2018-6-9 23:10 上传

该函数将从 url 下载 spos-fpos 段的内容,写到 fp 的指定位置处。结合第 1、2 节,开 n 个线程下载 python 2.7,具体代码如下,直接采取了 threading 库:

突破xx云盘的限速,利用python实现加速下载-8.jpg (56.38 KB, 下载次数: 0)

2018-6-9 23:10 上传

打印结果如下:

突破xx云盘的限速,利用python实现加速下载-9.jpg (15.81 KB, 下载次数: 0)

2018-6-9 23:10 上传

可见,该程序很快的将文件下载了,速度达到 9M/s 以上。文件也可以正常打开,如下图:

突破xx云盘的限速,利用python实现加速下载-10.jpg (43.1 KB, 下载次数: 0)

2018-6-9 23:10 上传

6. 测试下载被限速的xx云盘,观察是否提速成功

第 5 节提供的下载 python 2.7 文件没有被限速,不克不及体现本贴程序的提速性能。接下来,测试下载被恶心限速的 xx 云盘的文件,采取的下载链接可以自行从自己的云盘里提取:

突破xx云盘的限速,利用python实现加速下载-11.jpg (30.52 KB, 下载次数: 0)

2018-6-9 23:10 上传

我的url是 https://nj01ct01.百度pcs.com/file/…

直接采取浏览器下载时,速度最快达到 18KB/s,且经常呈现速度为 0 的情况,下载 3m 多点的文件用了 好几分钟,如下图:

突破xx云盘的限速,利用python实现加速下载-12.jpg (12.32 KB, 下载次数: 0)

2018-6-9 23:10 上传

突破xx云盘的限速,利用python实现加速下载-13.jpg (11.58 KB, 下载次数: 0)

2018-6-9 23:10 上传

采取本帖下载时,输出如下,用时 65 秒,速度 51 KB/s:

突破xx云盘的限速,利用python实现加速下载-14.jpg (13.48 KB, 下载次数: 0)

2018-6-9 23:10 上传

速度提升了 5 倍,我们增加线程数,即增年夜加速倍数,再试。将线程数目增加到 30,即 令 n=30 时,同样下载该链接,输出如下,用时 12s, 速度 279 KB/s,速度提升了 30 倍:

突破xx云盘的限速,利用python实现加速下载-15.jpg (17.28 KB, 下载次数: 0)

2018-6-9 23:10 上传

可见,采取本帖提供的 python 多线程下载xx网盘,简直可以显著提升下载速度。

写在最后

固然,这里只是提供了一种加速下载的方案,代码都是demo级的,可能会有bug,有机会的话,我会把它完善成一个下载工具。

原帖:python拭魅战小项目,多线程百度云盘下载,突破限速,超出迅雷超高速下载|向日葵智能

点击了解更多,可获得更加详细的信息。

更多内容回复查看:

游客,如果您要查看本帖隐藏内容请回复

python 下载文件 限速-突破xx云盘的限速,利用python实现加速下载相关推荐

  1. 【推荐】推荐一款云盘 不限速 【下载免登录】【下载不限速】【2T大存储】

    原文:[推荐]推荐一款云盘 不限速 [下载免登录][下载不限速][2T大存储] 推荐一款非常好用的云盘: 新用户注册即可有:2T 容量. 分享:可以不用密码.可以永久使用. 下载:不用登录  ,不用密 ...

  2. Hadoop发行版 Cloudera CDH 6.3.2及CM 安装包下载(阿里云盘 不限速)

    CDH(全称Cloudera's Distribution, including Apache Hadoop)是由Cloudera公司构建的Hadoop稳定发行版,不仅含有Apache Hadoop, ...

  3. windows突破百度云上传限速

    个人博客:https://suveng.github.io/blog/​​​​​​​ 查看原文 突破百度云上传限速 说明:上传慢是正常的,这跟百度云没多大关系,而是你宽带的运营商的事,一般宽带都会有一 ...

  4. 如何将Mac文件添加到 iCloud 云盘的具体操作方法!

    iCloud 内置在每一部 Apple 设备中.因此,你的照片.文件.备忘录等内容都能得到安全的保护.实时的更新,并随处供你取用.它能自动运作,让你专心去做自己的事.一开始使用 iCloud 时,每个 ...

  5. Python:pmml格式文件的简介、安装、使用方法(利用python将机器学习模型转为Java常用的pmml格式文件)之详细攻略

    Python:pmml格式文件的简介.安装.使用方法(利用python将机器学习模型转为Java常用的pmml格式文件)之详细攻略 目录 pmml格式文件的简介 1.PMML结构 pmml安装 pmm ...

  6. 想要下载文件,却遭遇网盘限速?教你 3 个方法解决百度网盘限速!

    360网盘关闭后,百度云似乎要成为国内网盘的唯一选择,然而百度云下载速度太慢,显然是被限速了.下面有3个方法用于百度网盘加速下载,演示的下载文件是大于1G的一个 War3.zip 单文件.使用的宽带是 ...

  7. 百度网盘下载太慢?不限速的阿里云盘来了

    苏生不惑第196 篇原创文章,将本公众号设为星标,第一时间看最新文章. 说起百度网盘,最令人诟病的莫过于网盘限速,几k的下载速度让人抓狂,无奈的是我们还不得不用它,因为目前大家分享文件最多的还是用百度 ...

  8. python常胜将军问题_蓝奏云盘pc版(lanzou-gui)更新0.3.3

    本帖最后由 丶遗忘_ 于 2020-7-26 16:55 编辑 搜了一下论坛里没看到有发布更新. 蓝奏云PC客户端是一款免费开源专业的第三方蓝奏网盘电脑版,蓝奏云客户端开源在Github,提供源代码文 ...

  9. 用python建云盘_实用的Python(3)超简单!基于Python搭建个人“云盘”

    1 简介 当我们想要从本地向云服务器上传文件时,比较常用的有pscp等工具,但避免不了每次上传都要写若干重复的代码,而笔者最近发现的一个基于Python的工具updog,可以帮助我们在服务器上搭建类似 ...

  10. 阿里云盘视频m3u8播放-python+vue3实现

    如图,先看看效果 实现方式 1. 通过api获取视频相关m3u8地址,并进行分析(web版可通过调试模式查看) 结果如下 {"domain_id": "bj29" ...

最新文章

  1. 彻底理解android中的内部存储与外部存储
  2. 引导程序为什么要org 07c00h
  3. Git的分支命令详解
  4. 刷题总结——烽火传递(单调队列+dp)
  5. python元编程详解
  6. 《系统集成项目管理工程师》必背100个知识点-96我国企业信息化发展的战略要点...
  7. Django-请求与响应
  8. python小课笔记_python第三课笔记
  9. SDN第二章 win10远程桌面Ubuntu
  10. 梁鑫:重构 - 在美股行情系统的实践
  11. springboot显示信息并且修改_Spring Boot小结-03--增.删.改.查
  12. 由DispatcherServlet看spring mvc请求处理过程
  13. Java排序算法(四):Shell排序
  14. excel规划求解功能总结
  15. 最简单DIY基于ESP8266的智能彩灯⑤(用C#调色板UI通过串口控制WS2812彩灯)
  16. 实现jul 日志重定向到 slf4j
  17. cdr转换成html格式,cdr生成对象
  18. 直播报名|美团技术沙龙56期:美团计算机视觉与多媒体技术实践--ACM MM2020专场...
  19. CS5212替代RTD2166|低BOM成本替代RTD2166
  20. 古代地图的那些趣事儿

热门文章

  1. 搜索的近义词php,挖掘关键词同义的近义词提高排名
  2. Pandas 速查手册中文版
  3. linux用dd命令刻录u盘,巧用linux dd命令刻录启动U盘
  4. Repast HPC 2.0安装及实例模型运行总结
  5. 【Log4cpp】项目日志Log4cpp的简单使用
  6. rpcbind服务没法开启问题
  7. 后勤管理系统-在线报修系统
  8. coreELEC ceemmc 写入 cm311-1a 刷机排坑 Armbian 搞机篇
  9. Ubuntu桌面主题美化推荐(Unity Tweak Tool + Flatabulous)
  10. 计算机校园网网络系统设计方案,计算机网络课程设计-XX大学校园网网络设计方案.doc...