2步 从百度网盘好友分享文件中导出文件目录


从百度网盘好友分享文件中导出文件目录 1,用到两个文件:①一个是一位网友大神写的js脚本文件;②一个是油猴脚本 下面来看一下我是如何一步一步导出的 1,下载这位网友的js脚本文件,放在桌面备用 https://gitee.com/avens666/BaidunNetDisk-script/repository/archive/master.zip 这个网址可下载 下面这个网址是大神的原文章 https://blog.csdn.net/cz666/article/details/109320622 为了防止文章丢失,我把文章拷贝一下 -----------------------分隔符------------------------------- 此文写于两年前,是知乎上针对 如何爬取百度网盘分享文件库的文件列表? 这个问题的回答。 最近更新了代码,增加了功能,不料知乎竟然删除了问题。这个问题都存在两年了一直正常显示。而且,这种自动化脚本,也并不违规。 ------------ 以下是原回答 --------------- 虽然百度网盘,自己的网盘文件,有导出目录的工具,但是很多分享的网盘数据,动辄10T 20T,不可能都存到自己的网盘中。而现在买网盘资源,基本都是这种分享方式,而不是卖账号。 搜索了一圈,没有现成的方案,大家都在关注如何加速下载等,github上虽然百度网盘相关项目有近百个,但是没有专门导出目录信息的项目。 而且主要都还是针对自己的网盘文件,这种在群中分享的网盘资源,没有现成的访问方法。 没办法,大佬们不关注这个需求,只能自己动手了。 在参考了github中的相关项目,比较了多种技术手段(python脚本,java程序,go语言,油猴脚本)后,本人计划使用油猴脚本方式来实现这个功能。 功能设计: 导出分享文件库的所有目录和文件内容清单,同时对文件夹内的文件数量和尺寸进行递归统计。 脚本发布在github上,有需要的可以下载 https://github.com/Avens666/BaidunNetDisk-script chrome浏览器+油猴脚本测试通过 由于墙,chrome的插件国内不好装,不会FQ弄的,用firefox浏览器+油猴插件也是可以使用的 最近美国搞技术脱钩,本人的开源项目在国内的开源库gitee也做了镜像,国内访问Gitee更快一些 https://gitee.com/avens666/BaidunNetDisk-script? 油猴脚本怎么用我就不写了,请自行百度。 下面写写脚本用法 油猴插件中启用本脚本 2 百度网盘PC程序,好友分享界面,点击要导出的共享会话,点击文件库. (如果chrome设为缺省浏览器,这时会在浏览器中显示文件库) 3 chrome浏览器中,百度网盘文件库界面,会多出一个”导出目录信息“的按钮。(油猴插件和本脚本都正确加载) 如图,先选择要导出的文件夹,可以单选,可以多选,可以全选,然后点击按钮开始生成清单 重要:要在文件库的根目录操作,不能进子目录选择文件夹导出。 这是百度网盘的通讯协议限制,我现在使用的方法还不能绕开这个限制。 这个限制已经在新版本解决,见后面说明. 4 接下来就是等待,不要关闭页面,清单生成速度同你要导出数据有多少个子目录有关。很多分享的网盘内部文件非常多,等待时间会比较长,大概8000个子目录,需要1个多小时。 清单生成完成后,会弹出文件保存对话框,你可以选择保存到本机目录 建议先找一个子文件夹少的目录,试用试用,可以很快出结果。免得等几个小时没结果认为我忽悠人。 如果想看到进度,按F12打开调试面板,选择Console面板,可以看到取清单的消息在运行。 5 保存的内容,是文本文件,按照tree命令的输出格式输出,大致如下的样子 文件夹,下面列出所有子文件及子文件夹,文件夹统计了其整体空间之和,文件单独输出了文件大小。 6 百度网盘的通讯协议还有些复杂,我也就弄了两天,第一次写js和油猴脚本,经验也不足,现在这个程序还有一些不完善之处 第一: 如果一个文件夹下面子文件超过100(不是文件夹包含的所有文件,是直接在该文件夹下面的文件),有可能超过100的文件列不出来。这个问题我还没有专门测试,我也没有这种极端情况,后面有需求时再说 第二:限于现在了解的JS特性,没有用异步请求,所以列表生成比较慢。能否有方法加速,如有js高手可以尝试一下,反正源码都公开了 ------------ 2019.7.6 功能更新 ---- 功能更新 1 解除一个文件夹只能导出100个子文件限制,可以输出子目录所有文件 (最多3000) 2 文件前面输出目录的层次信息,方便过滤 (后面写如何过滤) 3 文件信息增加输出全路径名 然后我补充一个对输出文件进行过滤的方法。 比如,只想输出目录,不想输出文件,只想看特定的格式文件,比如音频,图片,视频文件。 通过利用现在几个主流的增强型文件编辑软件的书签处理功能,可以很方便的对输出文件进行过滤处理。我这里以EmEditor这个编辑软件为例 只看文件夹 EmEditor打开导出的清单文件,Ctrl+F搜索”文件夹大小“关键字,点击全部设为书签 所有包含文件夹大小的行都被高亮显示 然后,选择编辑菜单->书签->提取已添加书签行至新文件中 新文件中就只包含目录的信息* 同理,你可以删除书签行,复制剪贴书签行。 如果想要过滤特定文件,查找文件后缀名".jpg" ".wav" 等等,同样操作即可。 ------------- 2020.10.26 ---------- 昨天导出一个目录等了4个小时都没结束,一怒之下,今天重新构思了提取策略,开发单独导出子目录的功能。 测试通过,通过在先在根目录获取ID信息后,再去选择子目录的方式,终于可以单独导出任意深度的子目录了。 代码完善后再发布。 ------------- 2020.10.27 ---------- 子目录导出功能已经完善,代码已经更新。可以去github或者gitee下载 参考楼下的一些代码,简化了代码结构, 我js不太熟,之前的有些处理比较笨拙。 0.5版本增加了单独导出子目录的功能,增加了2个按钮, “ID” 和“子目录”。 在根目录下选择子文件夹所在目录,点击获取主目录信息。然后可以进入子目录,选择要导出的子目录进行导出 虽然子目录按钮也能导出根目录的数据,但是不支持多选,所以还是保留了“导出目录按钮”,用于在根目录下一次性导出多个目录 ———————————————— 版权声明:本文为CSDN博主「cz666」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/cz666/article/details/109320622 ------------------------分隔符-------------------------------   可以把他的文章内容多看几遍,第二步就是浏览器里面安装油猴脚本 (我用的是Firefox+油猴脚本+大神的js脚本) https://addons.mozilla.org/zh-CN/firefox/addon/tampermonkey/   点击“安装”可以了。 接下来点击油猴脚本图标   点击菜单中的“管理面板”   点击“实用工具”-》 点击“导入” 导入前面下载的js脚本 这个时候,点击“已安装的脚本” tab ,就可以看到我们安装好的js脚本   就这么简单,我们已经搞好了。现在只需要在Firefox中打开我们的百度网盘,导出目录就可以了   打开的界面会多出这几个按钮。可以从根目录导出,也可以导出子目录。