JS 爬虫源详解:为什么它最灵活但也最容易失效
什么是 JS 爬虫源
JS 爬虫源本质上是一段 JavaScript 代码,而不是 JSON 数据或 m3u 列表。TVBox 内置了 JavaScript 引擎,运行这段代码来动态爬取目标网站、从 HTML 里提取分类链接、详情页信息和播放地址。
举个简化的例子:一个 JS 爬虫源可能包含这样的逻辑:
// 1. 请求目标网站的首页
const html = request('https://example.com');
// 2. 用正则或 DOM 解析提取分类链接
const categories = parseCategories(html);
// 3. 每个分类再请求一次,提取剧集列表
const dramas = categories.map(c => requestAndParse(c.url));
// 4. 返回统一格式的 JSON
return { sources: dramas };
TVBox 拿到这段代码,在自己的 JS 引擎里跑完,把返回的 JSON 当普通接口源处理。
为什么要做 JS 爬虫源
有些网站不提供开放的 JSON API——它们的分类和剧集列表只在 HTML 页面里。TVBox 想支持这些网站,就需要动态去「爬」页面、从 HTML 结构里提取数据。JS 爬虫源就是为这种场景设计的。
常见需要爬虫源才能覆盖的网站:
- 大型影视聚合站(不开放 API);
- 小型小众影视站(没有技术能力做 API);
- 一些需要动态加载内容的现代网站(JSON 接口藏在 JS 里)。
优点
- 覆盖面最广:理论上任何公开可访问的网站都能做成爬虫源;
- 灵活:可以处理复杂的页面逻辑、多步跳转、动态加载;
- 可以自己写:懂一点前端就能给自己想看但没现成源的网站写一个爬虫脚本。
缺点
- 最容易失效:网站一改 HTML 结构(换了布局、改了 class 名),爬虫脚本就需要跟着更新;
- 加载最慢:每次浏览都要发多次 HTTP 请求 + 运行 JS,比直接拉 JSON 慢;
- 维护成本高:一个爬虫源的质量取决于作者持续跟进目标网站改版的意愿。
和普通接口源的使用差异
从用户角度看,添加 JS 爬虫源和添加普通 JSON 接口源的操作是完全一样的——都是填一个 URL,保存,浏览。TVBox 自动识别这是 JS 脚本还是 JSON 数据,用对应的引擎处理。你不需要关心底层是爬虫还是接口。
怎么判断一个源是爬虫还是接口
不用判断——TVBox 会自动处理。但如果你在浏览器里打开一个接口地址,看到的不是 JSON 文本而是一行行 JavaScript 代码,那这个就是爬虫源。
社区生态
JS 爬虫源是 TVBox 社区最活跃的开发方向——开发者不停地为新的影视站写爬虫脚本,也在跟进维护旧脚本。一个活跃的配置通常会包含 1~2 个稳定的 JSON 接口源 + 2~3 个不同网站的 JS 爬虫源 + 1 个 m3u 直播源,兼顾稳定性和覆盖范围。
下一页
数据源这一章到此结束。配好源了,接下来正式进入使用篇——从分类浏览开始。