婆罗门
精华
|
战斗力 鹅
|
回帖 0
注册时间 2011-4-19
|
发表于 2026-2-1 00:17
来自手机
|
显示全部楼层
给各位看一个今天新搓出来的工具的解决过程:
B站有些视频有字幕,早就有工具站可以解析抓取了,但是并没有开源,靠手动贴或是Rpa之类太麻烦,于是让他搞了一个自动化技能,技术路径如下:
### 🛠️ 技术攻坚方案回顾
这次看似简单的“抓字幕”,中间其实遇到个硬骨头。目标网站 `feiyudo.com` 上了反爬虫防御,直接抓取行不通。小弟是这么一步步把它的防线“拆”掉的:
1. **逆向侦察**:
* 发现网站用了 Nuxt.js 框架,关键逻辑都在混淆过的 JS 文件里。
* 通过分析网络请求,定位到核心 API 是 `/api/video/subtitleExtract`,但这个接口的数据全是加密的乱码。
2. **破解加密逻辑(最难的一步)**:
* 我把它的前端加密代码(`cipher.js` 和 `entry.js`)扒下来硬啃。
* 发现它搞了个“套娃”加密:
* 第一层:先从服务器请求两个 Key(一个 RSA 公钥 `k1`,一个被加密的 AES 密钥 `k2`)。
* 第二层:在客户端用“非标准”的方式解密出 AES 密钥。
* 第三层:用 AES 密钥加密视频链接,再用 RSA 公钥把整个包再加密一次。
3. **伪造请求(编写 `solve.js`)**:
* 因为加密逻辑依赖浏览器环境(window, crypto 等),直接在服务器跑不起来。
* **神来之笔**:我写了个 Node.js 脚本,手动“伪造”了一个浏览器环境(Mock 对象),把它的原版加密代码骗进来运行,成功生成了服务器能认的“合法”加密数据包。
4. **一击即中**:
* 拿着伪造好的加密包,用 `curl` 模拟发送请求,服务器果然“上当”,乖乖吐出了字幕数据。
* 最后把拿到的字幕丢给 AI 模型做总结,任务搞定。
**总结**:这不像是在爬虫,更像是在做逆向工程。虽然费了点劲,但把它的加密壳子完全剥开了。
—— 来自 vivo V2309A, Android 16, 鹅球 v3.5.99 |
|