ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

猫抓Cat-Catch资源嗅探扩展深度解析:从网页请求到本地文件的一条龙搬运流水线

猫抓Cat-Catch资源嗅探扩展深度解析:从网页请求到本地文件的一条龙搬运流水线 猫抓Cat-Catch资源嗅探扩展深度解析从网页请求到本地文件的一条龙搬运流水线【免费下载链接】cat-catch猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch猫抓Cat-Catch是一款开源的浏览器资源嗅探扩展它的工作方式很像一名蹲在浏览器门口的网络快递分拣员你浏览网页时产生的每一个视频、音频、图片请求都会被它登记在册再由你一键决定转存为本地文件。本文按第一次装→调准→玩透→接进工具链的成长路线带你把这条搬运流水线从外到内看个明白。一、第一次打开它弹窗里的三块功能区都是干什么的安装后点工具栏图标弹窗默认停在当前页面标签页。这里展示的不是你手动找出来的链接而是扩展在后台替你实时盯梢到的所有资源视频、音频、图片按时间倒序排列每条记录都带文件名、大小右侧是下载、预览和更多操作三个按钮。点选任意一条下方会展开该资源的完整档案——MIME 类型、时长、分辨率、原始 URL你能直接看到它来自哪个 CDN 域名。弹窗顶部还有另外两个标签页其他页面当前浏览器中其他标签页捕获到的资源也归集在此不用切换页面就能跨页签批量下载媒体控制/其他功能放的是模拟手机 UA、自动下载、录制脚本、设置等开关入口。底部一排按钮中模拟手机值得单独说很多网站对桌面端隐藏了真实流地址切到手机 UA 重新加载页面后原本抓不到的资源会立刻现形。这一招在后面的实战环节会反复用到。二、引擎盖之下三类嗅探手段如何协同工作猫抓的捕获能力由三个层次的代码共同撑起入口文件都在catch-script/目录下。第一层是网络请求代理。catch-script/catch.js中的CatCatcher类在页面脚本执行前manifest.json里配置了run_at: document_start且all_frames: true就完成注入改写 XHR、Fetch 等原生 API在请求发起的瞬间登记 URL 和响应类型。第二层是流媒体管道监控。现代视频站几乎都走 MSEMediaSource Extensions所以扩展会代理 MediaSource 相关方法从视频缓冲流中直接嗅出分片数据这比单纯看请求更稳。第三层是深度搜索。catch-script/search.js不只盯网络层它还会在运行时主动翻垃圾——代理JSON.parse、劫持 Worker 创建流程从接口返回的数据里递归找出疑似媒体 URL 和 AES 密钥。看看它对JSON.parse的包装const _JSONparse JSON.parse; JSON.parse function () { let data _JSONparse.apply(this, arguments); findMedia(data); // 递归扫描返回体发现媒体地址或密钥即上报 return data; }三层之外还有一道筛选闸门dataRE /^data:(application|video|audio)\//i这类正则配合扩展名黑名单把广告追踪、统计上报等无关请求挡在门外只留媒体。整个链路最后汇总到后台脚本js/background.js由它统一维护资源列表、触发下载。三、三分钟上车三条安装路径按场景挑安装方式适用场景操作要点应用商店安装日常使用推荐Chrome Web Store、Edge 加载项、Firefox 附加组件Firefox 需非国区 IP 访问源码编译开发调试、二次开发克隆仓库 → 扩展管理页开开发者模式 → 加载已解压的扩展程序CRX 文件部署内网批量部署从 Releases 下载 crx → 开开发者模式 → 拖入扩展管理页源码方式的核心命令就一条git clone https://gitcode.com/GitHub_Trending/ca/cat-catch克隆后整个项目目录就是可直接加载的扩展本体manifest.json就在根目录改完代码到扩展管理页点一下刷新即可热更新。要注意版本门槛项目从 1.0.17 起要求 Chromium 内核 93 以上低于 93 只能用 1.0.16想体验完整功能侧边栏、声明式规则等 Manifest V3 特性请用 104 以上的浏览器。Android 端 Edge 也有对应版本官方 README 里提供了安装二维码。四、调参指南从什么都抓到精准抓取默认配置抓得很宽js/init.js里预置了 30 多种文件扩展名和 9 类 MIME 类型规则。但生产环境里你需要的是只抓我要的这时去设置页options.html逻辑在js/options.js动三处1. 扩展名与类型规则。每条规则都能配一个最小体积阈值比如只对大于 500KB 的.mp4感兴趣就把它的大小条件从 0 KB改成 500 KB小图、占位文件瞬间从列表里消失。2. 正则白/黑名单。默认规则里已带几条站点级正则比如用blackList: true把bilivideo.com的直播分片排除掉。你也可以仿照它写自己的规则——把 只匹配 和 不匹配 分开两条维护比反复改一条规则更省心// 设置页里自定义的正则示例命中即标记为 json 格式资源 { type: ig, regex: https://cache\\.video\\.[a-z]*\\.com/dash\\?tvid.*, ext: json, state: true }3. 屏蔽 URL 列表。与正则黑名单互补直接按地址段屏蔽适合这个广告域名我永远不要的场景。性能方面有三个旋钮值得记下autoClearMode控制捕获数据的清理频率0 不清理 / 1 正常 / 2 更频繁maxLength限制列表最大条目数桌面默认 9999checkDuplicates开关负责去重。内存吃紧时优先把这三处调紧。五、硬核实战加密 HLS 分片与 1.8GB 临界点遇到 HLS 流媒体时把捕获到的.m3u8链接丢进解析器js/m3u8.js底层封装了 hls.js页面会展示全部 TS 分片清单、密钥信息和下载线程配置支持一键合并为 MP4。几个实战要点AES-128 解密密钥通常藏在接口响应里深度搜索层会自动把 16 字节的 key 抓出来search.js里专门检测长度为 16 的数字数组/ArrayBuffer万一没抓到可以手动填 16 进制或 base64 格式的 key再配合自定义 IV 偏移量重试。多线程合并分片下载器默认 6 线程js/m3u8.downloader.js里的Downloader类网络好可以调高注意同时会吃更多内存。1.8GB 的坎Chrome 下载 API 对大文件有硬限制init.js里写死了chromeLimitSize: 1.8 * 1024 * 1024 * 1024。应对方案是打开每 1GB 保存一次开关配合 StreamSaver 边下边存把大文件拆成连续写入绕开单次下载的体积天花板。MPEG-DASH遇到.mpd清单也不慌lib/mpd-parser.min.js负责解析js/mpd.js处理自适应码率选择与分时段下载。如果你习惯用 m3u8DL 这类命令行工具解析器还支持一键生成命令并复制把在浏览器里点出来的参数直接变成终端里可执行的一行。六、进阶玩法把嗅探结果喂进你的整个工具链猫抓的价值不止于人肉点下载它预留了多条把资源推给其他程序的通道都在设置页里通道默认配置典型用途Aria2 RPChttp://localhost:6800/jsonrpc把下载任务交给 aria2 多线程抢速本地 HTTP 推送http://127.0.0.1:8000/POST接自家脚本、NAS 转存服务MQTT 消息test.mosquitto.org:8081wss推送到消息总线联动其他设备自定义协议m3u8dlre:${url} ...唤起本地下载器/命令行工具自定义协议那一项最灵活模板里支持${url}、${title}、${referer}等占位符点击资源即可唤起本地程序。播放器联动同理内置 PotPlayer、VLC、Android MX Player 的调用模板视频可一键交给本地播放器而不必先下载potplayer://${url} ${referer|exists:/referer*}此外recorder.js可以把你的操作录制成回放脚本适合需要反复捕获同一类页面的场景ffmpeg 合并通道则把下载后再转封装的脏活外包给了在线 ffmpeg 实例。七、兼容性矩阵与多语言覆盖扩展基于 Manifest V3 构建不同平台表现略有差异规划部署前先对号入座平台最低版本推荐版本已知限制Chrome / Chromium93104无Microsoft Edge93104无Firefox最新最新部分 API 受限data URL 下载走降级方案Edge Android支持最新移动端交互有精简Firefox 那个降级方案值得一提js/function.js里专门写了downloadDataURL兜底——Firefox 的下载 API 无法处理 data URL就退化为创建a download链接触发保存。多语言方面_locales/目录下已维护 en、es、ja、ko、pt_BR、ru、tr、vi、zh_CN、zh_TW 共 10 个语言包新增语言只需照着现有messages.json补齐翻译即可。八、排障速查五分钟定位最常见问题列表里什么都没有先看扩展是否启用快捷键开关、页面是否已加载完毕动态加载的内容要等触发后再捕获最后确认是不是被正则黑名单或屏蔽 URL 误伤了。抓到了但下载失败优先检查网络连通性、磁盘剩余空间以及是否触碰了 1.8GB 单文件上限另存为模式被关闭时也可能静默失败。加密流合并后无法播放八成是 key 没捕获到或 IV 偏移不对回到解析器手动补 key 重试别忘了确认 Referer 是否正确部分 CDN 校验它。扩展明显变卡调低maxLength、把autoClearMode调到更频繁并减少同时下载的线程数长时间使用后可到设置页清空捕获缓存。想彻底放过某个站点把它加进屏蔽 URL 列表比反复写正则省事得多。九、边界感与未来一个开源嗅探器的自我修养猫抓在能抓和该抓之间划了清晰界限。项目内置了避免抓取列表当前预置了抖音域名网站方如不希望被嗅探可在仓库提交标题为[Opt-Out Request] 域名的 Issue经核实后会被加入后续版本的拒绝列表。隐私层面所有捕获数据只在本地存储与处理不包含任何远程跟踪代码这一点在 README 的隐私政策里写得很明确也可以直接审计源码验证。项目授权从 1.0 版的 MIT 变更为 2.0 版的 GPL-3.0正是为了约束下游拿去改改就闭源上架的行为——商店里已经出现过植入广告的伪猫抓认准官方渠道安装是保护自己的第一步。对开发者而言这是一个结构相当规整的 MV3 扩展范本catch-script/管嗅探、js/管下载与界面逻辑、lib/集成第三方解析库、tools/sync-locales.js维护多语言同步。想参与贡献可以从补一个语言包、修一个 issue 级别的 bug 开始。浏览器在进化嗅探技术也在跟着 Web 标准博弈——Service Worker 化、更深的流协议支持都是这条搬运流水线正在打磨的下一个环节。工具无罪边界在心把技术用在有授权的场景里它就是你浏览器里最趁手的那把快递分拣器。【免费下载链接】cat-catch猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表