虽然自己的网盘,有导出目录的工具,但是很多用户间分享的网盘数据,动辄10T 20T,不可能都转存到自己的网盘中。而且转存也有文件数量限制等。 现在买网盘资源,基本都是这种分享方式,而不是卖账号。 因此,分享的网盘资源,里面到底有些什么内容,其实很不方便查看
搜索了一圈,没有现成的方案,大家都在关注如何加速下载等,github上虽然百度网盘相关项目有近百个,但是没有专门导出目录信息的项目。 而且主要都还是针对自己的网盘文件,这种在群中分享的网盘资源,没有现成的访问方法。 没办法,大佬们不关注这个需求,只能自己动手了。 在参考了github中的相关项目,比较了多种技术手段(python脚本,java程序,go语言,油猴脚本)后,本人使用油猴脚本方式来实现这个功能。 功能设计: 导出分享文件库的所有目录和文件内容清单,同时对文件夹内的文件数量和尺寸进行递归统计。
针对百度网盘的油猴脚本,可导出百度网盘共享文件库目录清单 chrome浏览器+油猴脚本测试通过 油猴脚本怎么用我就不写了,请自行百度。 下面写写脚本用法 1 油猴插件中启用本脚本
2 百度网盘PC程序,好友分享界面,点击要导出的共享会话,点击文件库. (如果chrome设为缺省浏览器,这时会在浏览器中显示文件库)
3 chrome浏览器中,百度网盘文件库界面,会多出一个”导出目录信息“的按钮。(油猴插件和本脚本都正确加载)
如图,先选择要导出的文件夹,可以单选,可以多选,可以全选,然后点击按钮开始生成清单
重要:要在文件库的根目录操作,不能进子目录选择文件夹导出。 这是百度网盘的通讯协议限制,我现在使用的方法还不能绕开这个限制。
4 接下来就是等待,不要关闭页面,清单生成速度同你要导出数据有多少个子目录有关。很多分享的网盘内部文件非常多,等待时间会比较长,大概8000个子目录,需要1个多小时。 清单生成完成后,会弹出文件保存对话框,你可以选择保存到本机目录
建议先找一个子文件夹少的目录,试用试用,可以很快出结果。免得等几个小时没结果认为我忽悠人。
如果想看到进度,按F12打开调试面板,选择Console面板,可以看到取清单的消息在运行。
5 保存的内容,是文本文件,按照tree命令的输出格式输出,大致如下的样子
文件夹,下面列出所有子文件及子文件夹,文件夹统计了其整体空间之和,文件单独输出了文件大小。
6 百度网盘的通讯协议还有些复杂,我也就弄了两天,第一次写js和油猴脚本,经验也不足,现在这个程序还有一些不完善之处
第一: 如果一个文件夹下面子文件超过100(不是文件夹包含的所有文件,是直接在该文件夹下面的文件),有可能超过100的文件列不出来。这个问题我还没有专门测试,我也没有这种极端情况,后面有需求时再说
第二:限于现在了解的JS特性,没有用异步请求,所以列表生成比较慢。能否有方法加速,如有js高手可以尝试一下,反正源码都公开了
第三:只能从根目录文件夹开始导,不能从子文件夹导,有些限制,不过这个需求也不是很大。
------------ 2019.7.6 ----------- 功能更新
- 解除一个文件夹只能导出100个子文件限制,可以输出子目录所有文件 (最多3000)
- 文件前面输出目录的层次信息,方便过滤
- 文件信息增加输出全路径名