需求
某天,在将一个百度网盘分享转存到自己网盘里时,想到要有一款工具,能自动的将很多个分享文件转存到网盘目录下会节省很多时间。
思路
整体思路就是,先摸清在百度网盘中,提取一个分享需要几个步骤;再分析每个步骤调用了那些API;随后“猜”出这些API的参数是什么;最后设计开发就没问题了。
逆向
在百度网盘网页版中,将分享保存到自己网盘一共有3个步骤:
- 打开分享链接
- 提取码提取(验证)
- 转存到自己网盘指定目录下
每个步骤发送的API请求:
- 分享页面GET请求
- 分享提取验证POST请求
- 转存POST请求
这些个请求总体的依赖参数有:
- 已经登陆的百度网盘Cookie
logId-来自cookie中的BAIDUID字段- 分享链接的短码-来自分享链接的最后22位
- 分享链接的提取码
shareId、fsid等字段
参数的具体来源这里就不一一细说了:)
行动
简单的说,有这么两种方式可以提供该工具:
- 在线的UI页面
- 本地工具(UI或者命令行)
出于简单考虑,暂时用本地工具的命令行方式好了。
于是,花了几天,用java写出来一个百度网盘批量转存工具。
使用方式很简单,自己编译,或者使用我编译好的jar包,在本地命令行执行java -jar xxx.jar即可运行。
在我自己的使用过程中,转存几千个链接,没什么大问题。
跟我自己手动去转存比起来,确实能节省很多时间。
总结
这个工具算是我开源项目的试水,希望能继续为开源贡献自己的力量。同时,希望这个工具能帮助到一些有需求的同学。
