前言
知识星球中有很多星主分享的文件。某一天,我想把这些文件都整理一下,结果发现只能手动一个一个去下载,于是就研究了一下如何批量下载。本想自己写个脚本实现,发现Chrome有个插件--星球伴侣,可以提供批量下载服务,但是有只能下载40个文件的限制,看到我星球中这400个文件,灵光一现,是否可以通过魔改插件,来突破这个限制,下载我的全部文件呢。
P.S. 插件附在文末
批量下载思路
当我们访问网页版下载全部文件的页面时,会发现其实请求的是这个api
https://api.zsxq.com/v2/groups/{group_id}/files?count=20
其中group_id是指定星球的唯一ID,可以在进入星球后从URL中获取到
星球会对count参数的值有限制,超过一定数值就返回错误
所以我们可以通过另一个参数end_time来分块取出我们所有文件的id
end_time参数代表,截止到end_time传入的时间之前,取出20条文件数据。
思路也很明晰了,通过不断的修改end_time,每次取出20条,最后拿到所有的文件id,进行批量下载。
需要登录?
一般2种方案:
- 模拟登陆
- js层面解决
模拟登陆还得在电脑上运行脚本,有点不方便,这里采用js层面,简单说,就是写个Chrome插件。
偶然发现有一个插件已经实现了这个功能 -- 星球伴侣,但是实际使用起来发现,有下载40个文件的限制。这该怎么办?只能动手突破下载限制了。
找到插件源码
首先找到安装的插件源码,MAC中Chrome插件的安装目录在
~/Library/Application Support/Google/Chrome/Default/Extensions/
去Chrome插件管理页面找到插件的id
chrome://extensions/
就定位到了源码
突破下载限制
观察到代码中的config文件,有一个free_download_limit参数,默认值是40,猜想是限制下载文件数量的。
跟一下调用代码
明确了我的猜想,是不是只要修改这个参数到9999999就好了
动手来修改后,重新离线安装我们修改后的插件
安装后刷新网页,右下角会出现图标,点击
下载全部文件
成功突破了下载限制,我一口气把星球中的所有文件都下载了下来。
魔改后插件
https://github.com/ohnonoyesyes/zsxq_dl
https://github.com/cckuailong/pocsploit
原文始发于微信公众号(我不是Hacker):一键下载所有文件|突破Chrome插件--星球助手的下载限制
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论