之前看到了proxyee-down,很不错,于是想用Python实现下。之前结合pyqt5和django实现过一个版本。无奈实现的不好。于是就想写个简单的。
原理:
一个文件分多段下载,具体可参考这个加速思路。再加上python的asyncio,速度就飙上去了。
程序架构
细节
1 多个协程同时写文件时会导致文件乱码,需要加锁
2 请求用的是aiohttp,感觉不是很好。python3.5会有问题。HEAD请求不直接重定向,但是GET却开启了自动重定向。获取文件信息的时候同时用HEAD和GET,于是GET的allow_redirects直接设置成了False。
说明
理论上只要支持分段下载,都能加速。但是百度网盘是个例外。至少我没有成功过。
效果图
代码地址
https://github.com/woshimanong1990/download_file_gui
exe下载
https://github.com/woshimanong1990/download_file_gui/releases
补充:
建了一个qq群:389954854,主要目的是互帮互助,通过交流促进python技术。很多初学者往往不知道如何下手,还等什么,快快加入进来吧!
或者关注微信公众号:python码码有趣的