3

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

 3 years ago
source link: https://www.xiaosuiyin.com/2020/11/21/%e5%9f%8e%e9%80%9a%e7%bd%91%e7%9b%98%e5%87%a0%e4%b8%87%e4%b8%aa%e6%96%87%e4%bb%b6%ef%bc%8c%e5%bf%ab%e9%80%9f%e8%8e%b7%e5%8f%96%e6%96%87%e4%bb%b6%e4%b8%8b%e8%bd%bd%e9%93%be%e6%8e%a5/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
我在城通网盘内存了几万个文件,如何快速获取这些文件下载链接? 探索,发现,分享, 小碎银
> 编程笔记 > 我在城通网盘内存了几万个文件,如何快速获取这些文件下载链接?

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

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

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

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

好家伙,我一看,总共两百多个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/[email protected]/dist/jquery.min.js

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

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

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

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

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

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

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

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

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

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

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

油猴子js脚本下载

fastAPI脚本下载


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

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


小碎银 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:我在城通网盘内存了几万个文件,如何快速获取这些文件下载链接?

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK