B站云顶之弈内容过滤

优化版:B站视频播放页检测到云顶之弈内容直接关闭,其他页面屏蔽相关内容

作者
dsgogoggo
今日安裝
0
安裝總數
0
評價
0 0 0
版本
0.2
建立日期
2025-09-20
更新日期
2025-09-20
尺寸
8.3 KB
授權條款
MIT
腳本執行於

B站云顶之弈内容过滤脚本(Tampermonkey)

1. 脚本概述

该脚本是一款基于 Tampermonkey(油猴)插件 的B站内容过滤工具,核心功能为自动识别并屏蔽“云顶之弈”及相关衍生内容,避免用户被动接收此类信息。脚本针对B站不同页面类型(视频播放页、首页/列表页等)做了差异化处理,同时通过正则匹配、防抖、资源自动清理等优化,兼顾过滤效率与浏览器性能。

2. 核心功能

脚本根据B站页面类型,实现分层级的内容过滤逻辑,具体功能如下:

2.1 视频播放页处理(优先级最高)

针对B站视频页(URL含 /video///bangumi///movie/),采用“直接关闭/跳转”策略,避免用户观看:

  • 标题检测:页面加载后优先检查视频标题(h1.video-title),若含关键词则立即触发关闭逻辑;
  • 简介检测:通过“防抖+MutationObserver”监控视频简介区(.video-desc),若简介加载后含关键词,同样触发关闭;
  • 关闭逻辑优化
    • 顶级窗口(直接打开的视频页):跳转至 about:blank(空白页),规避浏览器“禁止关闭非脚本打开页面”的安全限制;
    • 嵌套窗口(如弹窗打开的视频):先尝试 window.close(),100ms后未关闭则补充跳转空白页。

2.2 非视频页处理(首页/列表页/直播页等)

针对非视频页(如B站首页、UP主主页、直播列表等),采用“屏蔽层覆盖”策略,不影响其他内容浏览:

  • 目标元素匹配:自动识别以下类型的内容卡片,避免无差别屏蔽:
    • 视频卡片(.bili-video-card
    • 文章卡片(.article-item
    • 直播卡片(.live-card
    • 通用视频项(.video-item
  • 屏蔽效果
    • 为含关键词的卡片添加 “已屏蔽云顶之弈相关内容” 提示层(灰色背景、居中文字);
    • 禁用卡片交互(pointer-events: none),防止误点击;
    • 标记已屏蔽元素(data-yundingBlocked="true"),避免重复处理。

2.3 性能优化设计

  • 正则匹配提速:将关键词列表编译为单个正则表达式(keywordRegex),替代循环匹配,提升文本检测效率;
  • 防抖与节流
    • 页面变化监控(MutationObserver)触发时,通过300ms防抖延迟减少重复执行;
    • 定时检查间隔设为1000ms,避免高频操作占用资源;
  • 资源自动清理:页面关闭(beforeunload)时,自动断开MutationObserver、清除定时任务,防止内存泄漏;
  • 批量处理限制:每次最多处理20个未屏蔽元素(maxProcessElements),避免一次性操作过多DOM节点。

3. 安装指南

3.1 前置条件:安装Tampermonkey插件

脚本依赖Tampermonkey(油猴)运行,需先在浏览器中安装该插件,支持主流浏览器:

  • Chrome/Edge:通过 Chrome网上应用店 安装(Edge可直接访问此链接,或在微软应用商店搜索“Tampermonkey”);
  • Firefox:通过 Firefox附加组件商店 安装;
  • Safari:在App Store搜索“Tampermonkey”安装(需macOS 10.15+或iOS 15+)。

3.2 安装脚本步骤

  1. 打开Tampermonkey插件:点击浏览器右上角Tampermonkey图标(通常为“油桶”图标),选择 “创建新脚本”
  2. 替换默认代码:删除编辑器中的所有默认代码,将本文开头的“B站云顶之弈内容过滤脚本”完整代码粘贴进去;
  3. 保存脚本:
    • 快捷键:Ctrl+S(Windows/Linux)或 Command+S(Mac);
    • 手动操作:点击编辑器顶部的 “文件”→“保存”
  4. 验证安装:保存后,Tampermonkey图标会显示“1”(表示1个脚本生效),此时访问B站即可触发过滤逻辑。

4. 配置自定义

脚本内置可修改的配置项与关键词列表,用户可根据需求调整,无需修改核心逻辑:

4.1 核心配置项(位于代码顶部config对象)

配置项 作用说明 默认值 调整建议
checkInterval 定时检查内容的间隔(毫秒) 1000 若屏蔽不及时可减小(如500),若卡顿可增大(如2000)
debounceDelay 防抖延迟(毫秒),避免频繁触发处理逻辑 300 建议保持默认,过小易卡顿,过大易延迟
maxProcessElements 每次批量处理的最大元素数量 20 低配电脑可减小(如10),高配可增大(如30)

修改方式:直接在脚本编辑器中修改对应数值,例如:

const config = {
    checkInterval: 1500, // 改为1.5秒检查一次
    debounceDelay: 200,  // 改为200毫秒防抖
    maxProcessElements: 15 // 每次最多处理15个元素
};

4.2 关键词列表自定义(keywords数组)

脚本通过keywords数组定义需过滤的关键词,默认覆盖“云顶之弈”相关术语(含中文、英文、简称)。用户可根据新内容(如新版本术语)添加/删除关键词:

4.2.1 添加关键词

例如:若需屏蔽“弈子”“羁绊组合”,直接在数组中添加字符串(注意用英文逗号分隔):

const keywords = [
    "云顶之奕", "云顶", "云顶弈", "云顶之弈",
    "TFT", "Teamfight Tactics", "金铲铲", "金铲铲之战",
    "九五", "九五至尊", "九四", "八四", "七三",
    "D牌", "升本", "刷牌", "搜牌", "抽牌",
    "羁绊", "特质", "职业", "种族", "星系",
    "选秀", "装备", "海克斯", "拼多多", "赌狗",
    "恰分", "烂分", "天胡", "锁血", "三星",
    "弈子", "羁绊组合" // 新增关键词
];

4.2.2 删除关键词

若误添加或需保留某术语,直接删除数组中对应的字符串即可(注意删除后需确保数组语法正确,无多余逗号)。

5. 使用说明

5.1 生效范围

脚本默认匹配所有B站域名(*://*.bilibili.com/*),包括:

  • B站首页(www.bilibili.com
  • 视频播放页(www.bilibili.com/video/avxxxxxxbvxxxxxx
  • UP主主页(space.bilibili.com/xxxxxx
  • 直播页(live.bilibili.com/xxxxxx
  • 专栏/文章页(www.bilibili.com/read/cvxxxxxx

5.2 屏蔽效果验证

  • 视频页:打开含“云顶之弈”关键词的视频(如标题含“云顶”),页面会自动跳转至空白页;
  • 非视频页:首页/列表中含关键词的卡片会被灰色屏蔽层覆盖,显示“已屏蔽云顶之弈相关内容”,无法点击。

5.3 临时禁用脚本

若需临时浏览云顶之弈内容,可通过以下方式禁用脚本:

  1. 点击浏览器右上角Tampermonkey图标;
  2. 找到“B站云顶之弈内容过滤”脚本,取消勾选(图标会显示“0”);
  3. 需重新启用时,再次勾选即可。

6. 常见问题与解决方案

问题现象 可能原因 解决方案
视频页未自动关闭/跳转 1. 视频标题/简介不含关键词;
2. 简介加载过慢,脚本5秒后停止监控
1. 检查视频标题/简介是否含关键词;
2. 延长监控时间:将setTimeout(() => descObserver.disconnect(), 5000)中的5000改为10000(10秒)
非视频页部分内容未屏蔽 1. 内容卡片的CSS类名更新(B站页面迭代);
2. 关键词未覆盖新术语
1. 更新contentSelectors数组:在processNonVideoContent函数中添加新的CSS选择器(如.new-video-card);
2. 在keywords数组中添加新术语
浏览器提示“关闭页面失败” 浏览器安全策略限制(禁止脚本关闭用户手动打开的页面) 无需处理,脚本会自动跳转至空白页,效果一致
脚本启用后浏览器卡顿 1. 定时检查间隔过小;
2. 批量处理元素过多
1. 增大checkInterval(如改为2000);
2. 减小maxProcessElements(如改为10)

7. 注意事项

  1. 页面迭代适配:B站会不定期更新页面结构(如CSS类名、DOM层级),若脚本失效,需优先检查contentSelectors(内容选择器)和titleElement/descElement(标题/简介元素)的选择器是否正确;
  2. 隐私与安全:脚本仅在本地执行DOM操作(无网络请求、无数据上传),不会收集用户信息;
  3. 插件版本要求:建议使用Tampermonkey v4.0+版本,旧版本可能不支持MutationObserver或防抖函数语法;
  4. 多浏览器同步:若需在多台设备/浏览器中使用,可通过Tampermonkey的“同步”功能(登录账号后开启),避免重复配置。