ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

猫抓cat-catch资源嗅探进阶实战:从页面捕手到自动化下载工作流

猫抓cat-catch资源嗅探进阶实战:从页面捕手到自动化下载工作流 猫抓cat-catch资源嗅探进阶实战从页面捕手到自动化下载工作流【免费下载链接】cat-catch猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch你有没有遇到过这种场面在一门网课页面里翻遍了右键菜单找不到任何下载按钮打开开发者工具的 Network 面板视频地址被拆成几百个.ts分片好不容易看到一条.m3u8链接下载下来却是一堆打不开的乱码。这不是网页太难而是你缺一个真正懂嗅探的工具——猫抓cat-catch。这是一款开源的浏览器资源嗅探扩展能在页面加载初期注入脚本、实时拦截网络请求把视频、音频、图片等资源从纷繁的请求流里筛出来适合内容创作者、技术爱好者和一切需要离线保存资源的人。本文不打算罗列功能介绍而是按先跑通、再拆解、后修炼、终复盘的路径带你从第一次点击图标一路升级到用 Aria2、FFmpeg、MQTT 搭出自动化的资源下载流水线。从第一次嗅探到批量下载3 步完成基础配置第 1 步选择安装方式猫抓支持 Chrome、Edge、Firefox 以及 Edge Android你可以按自己的浏览器选一种安装路径安装方式适用人群操作要点商店安装大多数普通用户在对应浏览器扩展商店搜索 Cat Catch 直接安装数据最安全源码安装想研究源码或离线使用克隆仓库后在扩展管理页打开开发者模式选择加载已解压的扩展程序crx 安装商店不可达的环境下载 crx 文件后直接拖入扩展管理页面如果你选择源码安装仓库地址是https://gitcode.com/GitHub_Trending/ca/cat-catch克隆后在扩展管理页面开启开发者模式点击加载已解压的扩展程序选中项目目录即可完成装载。⚠️ 注意猫抓是开源的市面上已经出现不少加上广告代码后重新上架的伪猫抓请务必只从官方商店或官方仓库安装保护自己的数据安全。第 2 步确认权限与内核版本安装完成后先检查一下扩展的权限是否完整。查看项目根目录的manifest.json你可以确认它申请了webRequest、downloads、storage、scripting、declarativeNetRequest等关键权限并且声明了all_urls的主机权限这是它能嗅探任意网站资源的基础permissions: [tabs, webRequest, downloads, storage, webNavigation, alarms, declarativeNetRequest, scripting, sidePanel, contextMenus], host_permissions: [*://*/*, all_urls]这段配置解决什么问题没有all_urls权限扩展只能在声明过的域名下工作嗅探能力会大打折扣。另外注意1.0.17 之后的版本要求 Chromium 内核 93 以上要体验完整功能如侧边栏、脚本录制建议内核 104 以上。第 3 步完成第一次嗅探打开任意一个带视频的网页点击浏览器工具栏的猫爪图标弹出面板会立刻列出当前页面捕获到的资源面板上方是当前页面 / 其他页面 / 媒体控制三个视图切换中间是资源列表底部是批量下载、复制链接、模拟手机、自动下载等操作区。到这一步你已经完成了第一次可用操作——选中一条资源点击下载5 分钟内跑通全流程。核心能力拆解三个高频任务这样解决安装只是开始真正拉开差距的是你会不会配置。下面按三个真实任务来拆解猫抓的核心能力。任务一批量抓取某一类资源而不是淹没在请求海里打开options.html扩展的设置页你会发现抓取规则被拆成了三层后缀过滤Ext、MIME 类型过滤Type、正则匹配Regex。它们在js/options.js中被读取并渲染为可编辑的规则列表每条规则都支持大小与运算符。比如你要只抓这个页面里的高清 MP4 视频并且过滤掉小于 10MB 的广告片段在抓取后缀里这样配.mp4 10 MB .mkv 20 MB .webm 10 MB对应到源码里每条规则的核心结构是这样的js/options.js中的默认数据结构// 每条后缀/类型规则ext 是后缀名operator 是大小运算符state 是开关 { ext: .mp4, operator: , // 支持 、、、以及 500-1000 MB 这样的区间写法 size: 10, unit: MB, state: true }这套配置解决什么问题默认情况下猫抓会捕获所有疑似媒体资源页面复杂时列表会非常拥挤。通过后缀 大小的双重过滤你可以让列表里只剩真正想要的东西。更精细的控制在正则匹配区正则规则支持ig等标志位可以指定匹配到的后缀还能把规则设为黑名单来屏蔽广告域名或者只保留匹配到的资源。设置页里还内置了正则测试工具粘贴 URL 和正则就能实时看到匹配结果不用反复保存试错。任务二搞定 m3u8 加密流媒体别被几百个分片吓退HLS 协议视频是浏览器最常见的流媒体形态一条.m3u8索引文件下面挂着几百个.ts分片很多还套着 AES-128 加密。手动下载几乎不可能但猫抓内置了专门的 m3u8 解析器解析器的主界面分四个区域URL 输入与信息区、分片列表区、解析功能按钮区、高级配置区。它最实用的几个能力缓存读取直接从浏览器缓存中读取 m3u8 数据解决了很多网站一次性 URL过期失效的问题任意切片选择点击分片地址可以勾选或取消单个切片下载范围可精确控制EXT-X-BYTERANGE 支持能处理同一文件按字节范围切分的特殊 m3u8数据预处理自动剔除混入分片中的图片数据部分网站会在切片里塞广告图下载失败自动重试大幅提高长视频的下载成功率加密流媒体的处理逻辑可以参考js/m3u8.js中解析EXT-X-KEY的片段// 解析 EXT-X-KEY 标签提取加密算法、密钥URI和初始化向量 if (line.startsWith(#EXT-X-KEY:)) { // 常见格式#EXT-X-KEY:METHODAES-128,URIkey.key,IV0x... // 猫抓会把 METHOD、URI、IV 解析出来供后续下载器解密使用 }解密密钥支持自动检测也可以手动输入 16 进制或 base64 格式。合并时支持直接转存为 MP4需配合 FFmpeg也可以选择跳过解密来快速测试是否为加密问题。任务三捕获看不见的资源有些网站的资源不走常规 HTTP 请求而是藏在 JSON 接口返回、Blob URL、Web Worker 甚至 WebRTC 里。针对这些场景猫抓在catch-script/search.js中做了不少硬核处理JSON.parse 拦截重写全局JSON.parse在接口返回的数据里递归寻找媒体地址和 AES 密钥这就是深度搜索能力的来源Worker 注入代理Worker构造函数把嗅探脚本注入到 Web Worker 里Worker 内加载的资源也能被发现16 字节密钥识别检测长度恰好为 16 字节的数组或 ArrayBuffer这类数据极可能就是解密密钥会自动作为.key资源捕获// search.js 中的密钥识别逻辑长度为16的数值数组大概率是AES密钥 if (data instanceof Array data.length 16) { const isKey data.every(function (value) { return typeof value number value 256; }); if (isKey) { postData({ action: catCatchAddKey, key: data, href: location.href, ext: key }); } }当页面上的视频始终无法捕获时你可以在弹出面板切换到媒体控制标签使用录制脚本功能重新播放视频扩展会记录播放过程并还原出可下载的媒体数据。这个从捕获地址到录制数据的二级手段专治各种加密播放器。进阶修炼三层升级把嗅探变成流水线当你把核心任务跑顺之后就该考虑效率问题了。以下三层能力存在依赖关系建议按顺序配置。第一层用命名模板系统摆脱下载100个文件手动改名的噩梦猫抓的文件名支持一套${变量|管道函数}模板语法实现在js/templates.js中。模板里内置了大量可用变量标题、URL、来源域名、年份、日期、时间、分辨率、扩展名等和管道处理器slice、replaceAll、regexp、exists、prepend、concat、to等支持嵌套。举几个可直接使用的模板# 按日期归档2026-08-18/课程标题.mp4 ${fullDate}/${title|slice:0,50}.${ext} # 处理标题中的非法字符把 / 和空格替换成 _ ${title|replaceAll:/,_|replaceAll: ,_}.${ext} # 批量下载自动编号video_001.mp4 video_${index|pad:3}.${ext} # 来源域名分类 去重 ${origin|domain}/${title|to:lowerCase|slice:0,40}.${ext}这段模板解决什么问题下载 30 集课程时如果文件名没有规则整理归档会浪费大量时间。一次配好模板之后所有下载自动按规则命名归档。除了模板还可以在捕获面板里使用表达式提取或正则提取从页面 DOM 中抓取标题。options.js里还内置了外部播放器调用模板比如把资源一键推给 PotPlayerpotplayer://${url} ${referer|exists:/referer*}这段配置解决什么问题在浏览器里预览大体积视频卡顿严重时直接把真实地址交给本机播放器播放体验完全不同。第二层联动外部工具把下载交给更专业的引擎浏览器自带的下载器处理超大文件和长任务并不理想。猫抓在设置页专门开辟了调用外部程序区域最常用的是Aria2 RPC和send2local 本地发送。Aria2 集成是提升下载速度最立竿见影的手段。在设置页的 Aria2 RPC 区域填入本地 Aria2 的 RPC 地址如http://127.0.0.1:6800/jsonrpc并开启 Aria2 的 RPC 服务后所有下载任务都会转交给 Aria2 执行配合 Aria2 的多线程能力下载速度常常是浏览器自带的数倍。进阶玩法是自定义 URL Protocol通过m3u8dl自定义协议或调用程序选项你可以把 m3u8 地址直接推给本机的 N_m3u8DL-RE 等专业下载器由它们负责分片并发、解密和合并猫抓负责定位地址。设置页里还有send2local可以把资源发送到你指定的本地程序。再往上还有两个自动化接口值得了解MQTT设置页提供了 MQTT 配置捕获到资源时可以发布消息到 MQTT 主题你可以用任何语言订阅这个主题把猫抓变成自动化脚本的资源触发器在线/本地 FFmpeg下载完成后自动调用 FFmpeg 转封装例如把 WebM 转成 MP4、M4A 转成 MP3配合js/m3u8.downloader.js里的合并逻辑实现下载即成品第三层性能与隐私让工具既快又干净性能方面优先确认这几处配置在下载器设置中适当提高并发/线程数m3u8 分片下载建议 8-16 并发兼顾速度与稳定性开启嵌套在线 FFmpeg模式避免转封装时额外开标签页导致文件发送失败在弹出面板勾选自动跳转缓冲尾清理多余头部数据等选项减少无效数据占用内存隐私层面猫抓的原则是所有数据本地处理不上传任何远程服务器不含跟踪器。你可以进一步在屏蔽网站区域配置屏蔽列表把不想被抓取的域名加入黑名单支持白名单模式一键切换只在可信站点启用嗅探全局强制屏蔽列表部分网站明确不希望被抓取项目维护了一个避免抓取列表收到站长方请求后会逐步加入隐私策略细节可以参考_locales/zh_CN/messages.json中的相关说明文案以及仓库根目录的LICENSEGPL-3.0了解使用边界。请记住猫抓只用于下载你拥有版权或已获授权的内容开发者不对用户的任何使用行为负责。真实案例复盘把一节加密网课变成离线文件夹下面完整走一遍端到端流程目标是把一个使用 AES-128 加密、按分片播放的在线课程视频以课程名/章节名.mp4的结构离线保存到本地。步骤一捕获资源打开课程播放页点击猫爪图标在当前页面里找到application/x-mpegURL类型的 m3u8 资源。如果列表为空切换到其他页面并点击深度搜索。步骤二解析分片把 m3u8 地址送入 m3u8 解析器。解析器从缓存读取索引文件列出全部.ts分片和密钥信息。步骤三处理加密确认EXT-X-KEY已被识别。如果自动检测失败在高级配置里手动填入 16 进制密钥和 IV。这里有 90% 的概率会遇到第一个坑密钥 URL 是相对路径解析器需要正确的 BaseURL 才能拼接出完整密钥地址把密钥字段改成完整 URL 即可解决。步骤四命名与归档在命名模板里配置${fullDate}/${title|slice:0,30}_${index|pad:3}.${ext}把下载目录指到课程文件夹。步骤五合并输出勾选 FFmpeg 合并转 MP4。这里会遇到第二个坑转封装失败且不报错。原因是网页标题里含/字符导致文件路径出错用模板里的replaceAll:/,_处理标题即可。最终结果一节课从分片列表变成单文件 MP4文件按日期归档全部过程不需要手动点开任何一个分片地址。中途踩到的两个坑都有明确的解法整体耗时取决于视频时长配置时间只需要一次。避坑清单5 个高频问题的症状与解法问题一页面有视频但列表里什么都没有原因权限不完整、页面在 iframe 中加载、资源走的是非常规协议。解法✅ 检查扩展权限是否包含all_urls必要时重新加载扩展✅ 启用模拟手机功能部分网站对桌面端做了资源隐藏移动端 UA 反而能捕获✅ 切换到媒体控制标签使用录制脚本重新播放一次视频✅ 使用深度搜索捕捉藏在 JSON 接口返回中的真实地址问题二m3u8 能下载但解密后无法播放原因密钥或 IV 配置错误或密钥 URL 是相对路径。解法✅ 确认密钥字段为完整 URL相对路径要补全 BaseURL✅ 检查 IV 是否与EXT-X-KEY标签中的一致AES-128/CBC 是常见标准✅ 尝试把密钥格式在 16 进制与 base64 之间切换✅ 先勾选跳过解密下载一次若能播放则说明问题出在解密参数而非分片本身问题三下载速度慢长视频要等很久原因并发数过低或走了浏览器下载通道。解法✅ 把下载线程数调到 8-16开启并行下载✅ 配置 Aria2 RPC把任务交给 Aria2 多线程处理速度通常有数倍提升✅ 检查代理设置确认没有走慢速代理✅ 对超长视频使用 m3u8dl 自定义协议交给专业下载器处理分片并发问题四文件名带非法字符下载失败或乱码原因网页标题包含/、\或超长字符不符合文件系统命名规则。解法✅ 在命名模板里用replaceAll:/,_替换非法字符✅ 用slice:0,50限制标题长度避免超出系统文件名上限✅ 使用正则提取功能只从页面 DOM 中提取干净的标题文本问题五Firefox 下部分功能异常原因Firefox 对部分扩展 API 支持不完整。解法✅ 确认已安装的是最新版本2.6.x 之后已修复大量 Firefox 兼容问题✅ 录制脚本和在线 FFmpeg 在 Firefox 下曾有已知问题更新后重试✅ 若遇到 blob URL 无法下载改用 m3u8 解析器直接从缓存读取写在最后你的第一条自动化工作流回顾整条路径你在 3 步内完成了安装与首次嗅探用三层过滤规则解决了批量抓取用 m3u8 解析器攻克了加密流媒体用模板、Aria2、MQTT 把零散下载串成了流水线。猫抓的核心价值就在于——它不只是把资源地址列给你看而是通过js/options.js的规则系统、js/templates.js的模板引擎和js/m3u8.downloader.js的下载器把找到资源和管理资源两个环节无缝衔接。从项目的发展节奏看未来值得期待的方向包括对 WebRTC 等新传输协议的更深层支持、更聪明的资源识别算法、以及围绕 MQTT 和本地协议构建的更丰富自动化生态。现在轮到你动手了克隆https://gitcode.com/GitHub_Trending/ca/cat-catch仓库或从你浏览器的官方商店安装猫抓打开一个有视频的网页先完成第一次嗅探——然后试着配置一条过滤规则、写一个命名模板把其中一个坑踩一遍再修好。当你能在 5 分钟内把一节加密网课变成规整的本地文件时你就真正吃透了这款资源嗅探扩展。【免费下载链接】cat-catch猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表