共计 2696 个字符,预计需要花费 7 分钟才能阅读完成。
就是下载别人的 OneDrive 分享链接 OD 超限的问题就很难搞,429 是很常见的 有个工具是分享链接获取直链 +aria2 下载的,可以保持原有目录,挺棒的,但是,429 问题很难搞,导致下载了一堆里面是 html 的内容,写什么什么超限之类的内容 而且 429 的几率特别高,真的很高,推送几十个链接,只能下载成功几个,有可能是多线程下载的问题,可是 aria2 调低了线程数和任务数问题依旧没什么缓解。 后面发现用 wget,这个问题出现几率就低(同样的文件),而且用国外小鸡单线程下载也蛮快的,大文件的话经常可以在 50MB/ s 以上 (小文件没跑起来就下载完了) 就获取了直链,wget -c -x -i,就可以了,配合我之前发过的获取 cookie 脚本,直接写死循环一直下载 (只下载一遍肯定下不全的,可恶的 OD 限制),但是需要大盘,以及时间 后来遇到个问题,就是文件名过长的问题,就是 od/sp 的那个目录,很长(文件名过长报错,无法保存文件) 接着想了个解决方法,就是我说的绝活 用 nginx 301 一下,就可以缩短网址了 顺便把配置贴上来吧
复制代码 server_name download; 可以自己改,这个将会是你下载的文件夹 如果需要可以弄个 docker 镜像,这样就不需要本机有 nginx 了,也不需要占用本地的端口,相应的 Hosts 指向 docker 容器的 ip 就好了,默认是 172.17.x.x 的,不知道映射端口出来用保存的目录会不会带端口,没试过,如果不带就更简单了 (可以直接用 caddy 之类的,更简单),但是我感觉我这个需求,应该比较少,我自己用我就懒得弄了 这样操作过后 保存下来的文件就是这样的
复制代码 没有这样弄,就是这样的
复制代码 差别还是很大的,主要是文件名太长的时候就不行了,不然其实无所谓 虽说可以另外写个脚本,wget 的时候指定 - O 保存文件,但是有点繁琐,需要从链接中提取目录,文件名,然后创建目录,下载文件,估计没有十几二十行代码下不来,用 - x 多是一件美事啊 aff 地址:https://hostloc.com/thread-1032985-1-1.html?aff=1000 再贴一下我之前发过的《curl 获取 OneDrive 分享链接的 cookie 用来下载直链》 直接给一段示例吧,curl 那个命令的 url 一定要改成分享链接,就是分享链接,不是你打开之后又从浏览器地址栏复制的,很重要!
复制代码
复制代码 加死循环就是下面这样,文件很多的时候可以这样循环一下,挂一晚上第二天看看下齐全了没有
复制代码
|
网友回复:
注册 : qpzc
好鸭 : 感谢大佬分享
coouk: 请教大佬,OD 分享的文件如何批量下载?
aes: 已阅
antbt: 就获取了直链,wget -c -x -i,就可以了
冲浪麦浪花郎 : 谢谢分享的大佬
好鸭 : 网上找了找,用那个油猴脚本获取直链吗?
IDC_Global: 嗯,用那个就可以,不过我是用那个 python 推送 aria2 的改了一下,都差不多,就是油猴那个文件多的时候要等好一阵子,浏览器有点卡
antbt: 支持技术贴
注册 : 谢谢大佬,下午有空了我去试试
注册 : 感谢大佬分享
antbt: od 没有那么多资料
troforit: 一次性官方 api. 最多只能 5000 目录,一个个查询结构基本上只能 11000-13000 个文件就会出错,目前尚未出现完美解决数万文件目录获取的方式
pulpfunction: 感谢大佬指教,已经在批量下载了。