欢迎光临散文网 会员登陆 & 注册

如何移除网页版b站的"话题"? 油猴脚本 - 删除页面上内容

2023-09-05 23:48 作者:ICE27182  | 我要投稿

信息茧房未必没有优点

如果只是为了脚本 如下 能直接用(至少Windows上的Edge可以 没有在其它设备测试过)

代码也许不是最好 但是能用 之前没学过JS CSS WebAPI什么的 昨天因为一直看到一些东西受不了了 晚上临时学的 所以后面说的一些可能不太专业严谨 只是基于我自己的理解 "能用就行"

b站只是顺便 的确一直想去掉这些东西 代码也简单 作为例子不管实用性还是简明性都不错

让我受不了的是别的

运行有问题评论说 写专栏的时候改了一点懒得测试了 理论上可以


首先 确定目的: 删除特定页面上的特定内容

没有直接找到能达到该目的的教程 且ChatGPT直接生成的结果有问题 所以我想这还是有意义的

大概解释一下吧先

这个东西的基础原理是什么呢 检查HTML文件内容 删除不要的就好了 在上面的代码里是比较清晰的

var在JS里是定义全局变量(let局部 const常量) 在这里var和let都行理论上


document表示目前的那个html文件内容 跟着的的是方法 找到第一个class="topic-panel"的元素

    .topic-panel这里的.表示查找以这个为class的 注意 如果看到类似class="abc 456 _789"这样中间有空格的情况 写的时候空格应该变成. 也就是.abc.456._789

    如果不加则是以topic-panel为tag的元素 常见的元素大致长这样<p> <img> <div> <script> 这个可以和上面那个结合 比如一个tag为div的且class为"dog"的就可以写成div.dog

    #topic-panel则是查找以topic-panel为id的元素 我没用过 不知道


那么我是怎么知道它是这个class的呢 按F12

这是Edge的界面 默认应该出现在浏览器右侧

出现类似这样的界面 这里最左上角的按钮点一下 就可以很方便的查看页面上不同内容对应的html元素信息了

这是类似开关的按钮 打开后鼠标指针指哪里就能看到html了

通过这个方法可以比较容易的找到目标所特有的class 

当然未必是class 也可能是tag或者id

remove方法就很字面 删除这个元素

解释完了这段下面代码 那么套在这段代码外面的是什么呢

var topicPanel = document.querySelector(".topic-panel")

topicPanel.remove()




要回答这个问题 可以显示着不用外面这个直接运行看看


你会发现直接运行并不能删除想删的内容 它还在那 (chatgpt给我的最初版本差不多就这样)

这个原因我想也是很容易想明白的

页面加载也不是一瞬间就加载好的 html那么多字不可能一瞬间就都出现了 大概是逐渐出现的 如果脚本在要删除的目标出现之前就执行完成了 那自然不能删除想删除的目标

这也就引出了waitForKeyElements这个函数的目的了 只有满足条件了 才会执行函数

这里的条件就是等到有class="topic-panel"的元素出现再执行删除它的函数

这里紧随的的function()可能会有些confusing 它并不是调用前面写的函数 而是表示一个临时的函数 也就是满足条件后执行的这个用于删除的函数


注意 waitForKeyElements这个函数不是直接就能用的 注意一下代码上面的部分

我的理解类似于import或者#include

我不知道第一个必要不必要 懒得试了 反正代码能跑



知道了大概原理 就可以写一些更加适合自己的代码了 

比如你可以写代码把平时看视频旁边的推荐删掉

比如(这个是我的某个脚本的一部分且修改过 仅作示例)

或者更加具体一点 写根据时长和关键词筛选b站视频

(本来想写了发出来方便没基础的人用的 一方面我觉得没有图形界面 直接在代码里该参数很多人都会懒得用 而我又懒得深入下去

代码没写完 只是告诉你能写)


如何移除网页版b站的"话题"? 油猴脚本 - 删除页面上内容的评论 (共 条)

分享到微博请遵守国家法律