BaiduCloudHelper
说明
本项目百度云引擎原理根据:BaiduPCS改写而来,原项目使用C语言编写,人生苦短,我用python。
部分关键技术参考了:baidupcsapi
此外直链功能为抓包后提取的链接,因此是模拟百度网盘客户端的通信制作的
目前开发中,优先支持运行环境:python3.6 + Mac OS 10.14(开发环境)
目前仅测试了Mac OS下的情况,Windows问题将会在开发完成后解决
(2018-12-02更新)
今后将不再进行python2.7的再次测试,如果python2.7产生兼容性问题,请提交issue,我会尽快修复
更新记录
注意事项
- 直链获取会自动申请免费加速,如果没有免费加速时间则获取到的是普通连接(目前暂时是百度云客户端链接中取第一个)
- 目前可以自动登录了,如果需要删除自动登录信息,请手动删除安装目录下的cookie.list文件
- 命令行模式主要用于开发调试,不适合用户使用,请使用网页模式运行
- 请勿输入非法变量或在公共网络使用,后果自负
其次由于蛋疼的编码问题,本人技术有限,使用了eval函数,且未做大量的严格输入检测,因此具有一定的安全风险) - 请勿频繁开始任务暂停任务,在快下载完的时候会报很多错(由于python坑爹的多线程,暂停之后他还会继续跑一会,所以根本停不下来23333),但是下载的文件是没有问题的
- 可以在webserver.py中第13行设置你需要的下载线程数量(修改thread_num数值大小),和下载速度之间有关系,直链有连接数限制,所以最高设置为120(本人测试结果),否则会报错。
同时在downloadengine.py中找到:self.delta_range = 1024 * 1024 * 10 来设置区块大小,也会对速度产生影响,而且可能也会对暂停(每个线程在下载完一个区块之前不会停止)
产生影响,请参考每个线程需要下载的时间,来设置合理大小,之后会在web界面中加入设置选项。
线程数与区块大小应成反比,具体设置需要参照电脑配置、下载文件大小等进行灵活调整,就可以达到最优下载速度 - 重新启动后,已完成任务会自动从下载列表中移除
- 不要随意修改task.list文件,可能会导致下载进度无法读取的情况,然后可能就GG了
目前支持功能
web模式(开发中):
- (自动)登陆、退出
- 显示网盘文件
- 多线程下载文件
- 暂停下载
命令行:
- 仅限开发者功能调试
目前已知问题
下载中退出程序,再次打开,未下载完的任务会显示正在下载中,需要手动暂停,之后再启动 多线程下载器可能会出现文件数据错误的问题
安装
运行环境需要python,目前支持的python版本:
python2.7
python3.3+
安装依赖库,使用pip,Linux、Mac非root需要添加sudo
pip install -r requirements.txt
使用
web模式:
运行
python main.py -w
打开浏览器,访问:127.0.0.1:8000
系统信息会显示在右上角,不过出错了还是看一下控制台比较好
命令行(仅限开发者调试功能使用):
打开main.py输入相关信息:
username = '' # 用户名
password = '' # 密码
disk_file = '' # 网盘文件目录,格式:/文件夹/文件夹/文件名 或者 /文件名
file_name = '' # 文件名,为了方便就没有写从disk_file读取文件名
download_file = '' # 下载到哪里,需要绝对路径
然后运行:
python main.py