我在城通网盘内存了几万个文件,如何快速获取这些文件下载链接?

编程笔记 小碎银 9个月前 (11-21) 1736次浏览 0个评论
文章目录[隐藏]

开端

事情是这样的,我打算做一个不用番强就能下载谷歌浏览器插件的网站

我在城通网盘内存了几万个文件,如何快速获取这些文件下载链接?

为了保证下载速度,我需要先把谷歌浏览器应用商店的所有插件,先保存下来。

弄了好几天之后,终于把这些插件都下载到自己的硬盘里了。关于怎么下载所有的插件,以后再写哈

好家伙,我一看,总共两百多个G,差不多七万多个文件。

我的服务器空间总共才50G,肯定是放不下的。

要是放到oss上,每个月流量也是得花钱的。

于是我就想到了城通网盘,因为我是这个网盘的会员。

费了一番功夫之后,把这些插件都传到城通网盘了。

接下来的工作就是获取这些文件的下载链接了。

我在城通网盘内存了几万个文件,如何快速获取这些文件下载链接?

放个截图,可以看到这个文件夹内有三万多个文件

要是通过手工操作,挨个去获取文件的下载地址那是绝对不可能的。

既然不可能手工操作,那有啥简单的方法呢?

我先想到官方有没有提供API来获取文件地址,于是我就问了客服。

客服说:没有

我在城通网盘内存了几万个文件,如何快速获取这些文件下载链接?

既然官方没有提供,那就只能自己动手了!

编写脚本

我能想到的思路:

  1. puppeteer。用这个自动化测试浏览器进行登录,然后编写脚本
  2. 破解城通网盘的接口参数,用Python模拟请求
  3. 写个油猴子脚本

方法1是可行的,但是puppeteer太重了,有种杀鸡用牛刀的感觉。

方法2速度最快,但是得破解人家的接口参数,这个得费一番功夫,不值得。

最后选择了方法3,这个是最简单方便的。

那就开始写呗!

首先新建一个脚本

我在城通网盘内存了几万个文件,如何快速获取这些文件下载链接?

修改如下内容

脚本新建完之后,如果想让它在指定的网站生效,需要修改配置项中的match

我在城通网盘内存了几万个文件,如何快速获取这些文件下载链接?

另外我觉得油猴子自带的编辑器写代码很不方便,所以我把js文件地址映射到我本地了关于映射本地文件的方法,可以点击左边的文字链接

这样就可以电脑上的编辑器写代码了,写完之后保存、刷新页面就能看到最新的效果,非常的方便!

脚本内容

在城通网盘的页面,进入控制台,搜索一下”jquery”,可以看到它是引用了jquery了的。

我在城通网盘内存了几万个文件,如何快速获取这些文件下载链接?

有了jquery,操作dom和发送ajax请求都很方便。

如果页面中没有jquery,也可以自己引入,在脚本头部添加:

// @require https://cdn.jsdelivr.net/npm/jquery@3.2.1/dist/jquery.min.js

下面是完整的代码截图,代码写的很简单,基本实现了想要的功能

我在城通网盘内存了几万个文件,如何快速获取这些文件下载链接?

在请求翻页的时候,我加了10秒的延时,这个时间也可以改小些,只要别太快就行。翻页操作太快,会被城通网盘屏蔽IP。

上面的js代码是获取文件的名字,ID,分享链接,并通过接口写入到数据库。

至于接口,我是用fastAPI来写的,非常的快!

接口代码

我在城通网盘内存了几万个文件,如何快速获取这些文件下载链接?

上面的代码仅供参考,我的js和Python都是半吊子水平……

我在城通网盘内存了几万个文件,如何快速获取这些文件下载链接?

在pycharm的终端中执行 uvicorn 文件名字:app –reload 就能把接口跑起来了

 

测试

登录城通网盘,进入到存放插件的文件夹,等待10秒之后,就可以看到脚本开始工作了,自动的翻页、发送ajax请求,把获取到的内容不断的写入到数据库中。

代码下载

上面的文字写的比较乱,如果您想看源码,可以这里下载:

油猴子js脚本下载

fastAPI脚本下载

 


以上就是获取大量城通网盘文件分享链接,并存入数据库的过程。

如果有什么问题,请在留言区批评指出!


小碎银 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:我在城通网盘内存了几万个文件,如何快速获取这些文件下载链接?
喜欢 (3)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址