【工具】JS|浏览器脚本6分钟极速入门 · 开发一个限制自己刷b站的脚本

news2024/11/28 18:40:54

在这里插入图片描述

这张图花里胡哨的是让AI生成的,我觉得怪可爱的,就直接作为封面了。

这篇文章中会开发一个JS脚本,这是一个用来限制b站网页版功能的脚本,避免刷b站的时间过长。功能如下:

  1. 除了搜索、视频页、私信页之外的任何页都会被重定向到搜索页;
  2. 视频页去掉相关推荐,并且非自己的视频去掉评论。

以下内容是视频的文本,6分钟极速入门浏览器脚本开发-Bilibili-shandianchengzi。具体要结合视频阅读。

脚本下载链接:https://github.com/shandianchengzi/Bilibili-self-discipline-script/blob/main/README.md。

如果只是使用的话就不用往下看了,直接安装即可。

文章目录

    • 1 脚本创建
    • 2 脚本信息
    • 3 脚本仓库
    • 4 脚本基本开发
    • 5 脚本功能完善

1 脚本创建

想要在浏览器中运行脚本,首先就要在浏览器中下载一个用于管理脚本的扩展插件。我们常用的管理脚本的浏览器插件可以在微软自带的浏览器中直接搜到,你可以在谷歌商店搜到,但是谷歌商店需要科学上网,所以不太合适。

现在微软商店中的tampermonkey被改名为篡改猴。安装好了这个插件之后,就可以看到右上角多了一个图标。如果没有多的话就需要按钉子显示出来。

随后点击这个图标的创建新脚本,他就会生成一个最简脚本模板让你填写了。

2 脚本信息

这个脚本的头部包含一些脚本信息,主要需要修改的就是脚本的介绍、作者信息。我们今天开发的脚本是一个b站自律脚本,它的功能我设计的第一是强制跳转到搜索页,这样就不会看到主页上面的相关视频。第二个功能是视频也去掉相关推荐。并且去掉底下的评论,因为我每次看评论都会看非常久。

可以看到这两个功能都是非常简单的,所以这也是我想把这个脚本作为一个教学脚本的原因。

一个额外需要关注的信息是match,这是指你的脚本在哪一些网页中会加载。比如我们这里是在b站中,所以match就b站就可以。

作为小白需要重点知道的就是通配符*,这个经常写代码的人都知道,意思是后面加任何东西都当作被匹配。

icon就是脚本的图标,随便找张无版权的图片,复制图片链接即可,也可以不修改。

3 脚本仓库

创建好脚本之后,再点开能匹配脚本的页面,就可以看到右上角有小红点,这代表脚本被加载过。

然后继续进一步完善脚本的内容。
我的建议是新建一个github仓库,这样能对脚本进行版本控制,并且开源了别人也能一起帮忙完善。
新建仓库,需要填写名字以及描述,比较特殊的是协议,新人往往不注重协议,但是实际上协议是非常重要的,它直接声明了你的仓库是否对你来说有版权。

比较常用的三种协议有Apache,MIT和GNU。其中阿帕奇允许衍生的产品商用或专有,Mit只保留作者版权,其他的任何使用都不做限制。Gnu就是不允许商用。它做出来的衍生代码必须是继续使用gnu协议、并开源的。

我这里使用的是我比较喜欢的GNU协议,因为我并不希望我这种小破脚本都被拿去商用。对于这种纯粹为了开源和使用而分享出来的脚本被拿去商用对分享者来说是一种非常大的伤害。

创建好仓库之后,把它克隆到本地,再用VScode打开就可以开始我们的编写了。

4 脚本基本开发

对于这种常规脚本,最快的方式还是结合AI,Vscode里有微软开发的Github Copilot,对于学生和老师,只需要在Github上申请即可开通使用,具体申请方式去看Github官网。

装好插件之后,我们输入一些注释,让人工智能自动生成部分代码。它选择先解析网址,我们可以去b站上查找一下这些网址的特征,然后在注释里提供给它,这样它就不会胡乱生成一些解析代码了。

比较容易实现的功能是非视频页重定向,这里强制使窗口链接等于搜索页即可。不过在写的时候会遇到浏览器脚本老生常谈的一个问题,就是脚本加载次数过多。

通过分析浏览器控制台的输出信息,可以知道在每次收到新的xhr请求的时候,都会重新加载一次,说明它主要的加载可能是在子页面。前端的开发者会知道,为了不重复开发一些边框组件,往往开发的时候先做一个框,框里面嵌套子页面,也就是嵌套别的网页文件。

搜索解决办法找到了仅允许顶端加载。这一个设置必须在脚本管理插件中手动添加,脚本的开发开发添加这个设置非常麻烦。你如果你要使用或者自己编写脚本的话,你最好也把这个设置开开,而不是寄希望于开发者。

再次运行的时候现它只加载了一次了。
视频到这里,我们已经完成了最简单的脚本开发,在接下来的视频中,我们会进一步完善整个脚本的功能。

5 脚本功能完善

视频还没做,改天再做。反正代码都给出来了、、、

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1300201.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

最长连续序列(leetcode 128)

文章目录 1.问题描述2.难度等级3.热门指数4.解题思路方法一:排序方法二:哈希表 5.实现示例参考文献 1.问题描述 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请你…

事务--03---分布式系统唯一ID

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 分布式ID一、什么是分布式系统唯一ID2. 二、分布式系统唯一ID的特点 分布式ID-----实现方案1、使用UUID生成分布式ID2、基于数据库自增ID3、Redis生成ID4、号段模式…

电机:无刷直流电机的原理

一、什么是无刷直流电机 无刷直流电机,英文名称 Brushless DC Motor,简称BLDC; 无刷直流电机的定子是线圈组,而转子是磁铁组,所以不需要用刷子把电流引到定子上,这就是无刷的来历。 电机运动的原理都是依…

[山东大学操作系统课程设计]实验四+实验五

0.写在前面: 为什么这次把两个实验放在一起写了,因为实验五的要求就是在实验四的基础上完成实现的。但是我得实现说明,我的实验四虽然完成了要求,但是无法在我自己的实验四的基础上完成实验五,这是一个很大的问题&…

智能优化算法应用:基于被囊群算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于被囊群算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于被囊群算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.被囊群算法4.实验参数设定5.算法结果6.参考文…

linux权限管理以及shell

1.shell 1.1什么是shell? shell即外壳,是运行在linux系统上的一个脚本语言,包裹在linux内核的外面。我们常说的linux操作系统实际上是linux内核。我们使用的所有指令都是一个个程序,而shell指令就是一个将我们用户的操作翻译给linux内核的程…

layui日历插件

layui日历插件: 在已开源的layui日历插件的基础上的改版(原版插件地址:https://gitee.com/smalldragen/lay-calender-mark)https://gitee.com/tangmaozizi/layui-calendar-plugin.gitjava后台代码并没有把项目完整结构上传上去,因…

小黑子——springBoot基础

springBoot简单学习 一、SpringBoot简介1.1 springBoot快速入门1.1.1 开发步骤1.1.2 对比1.1.3 官网构建工程1.1.3 SpringBoot工程快速启动 1.2 springBoot概述1.2.1 起步依赖I. 探索父工程II. 探索依赖III. 小结 1.2.2 程序启动1.2.3 切换web服务器-jetty 二、配置文件2.1 配置…

Redis权限管理体系(一):客户端名及用户名

在Redis6之前的版本中,因安全认证的主要方式是使用Redis实例的密码进行基础控制,而无法按照不同的应用来源配置不同账号以及更细粒度的操作权限控制来管理。本文先从client list中的信息入手,逐步了解Redis的客户端名设置、用户设置及权限控制…

simulink MATLABFunction模块中实时函数调用函数的使用

样例 function Predyy matlabceshi(input, Time_s) input1 input; Time_s1 Time_s; Predyy ee(input1) mm(Time_s1); end 上面是主要部分,下面是被调用部分 function A ee(input1) A input1 * 100; end function B mm(Time_s1) B Time_s1 * 100; end 模型…

每日一练【盛最多水的容器】

一、题目描述 11. 盛最多水的容器 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明…

Threejs发光闪烁提示特效

一、导语 发光闪烁特效应该在我们的项目中是经常需要去封装的一个特效吧,一般用于点击选择,选中物体,或者一些特效加持于中心物体,物体碰撞检测后的发光特效等等 二、分析 我们可以合理的使用后处理特效,上步骤&am…

深度学习与计算机视觉技术的融合

深度学习与计算机视觉技术的融合 一、引言 随着人工智能技术的不断发展,深度学习已经成为了计算机视觉领域的重要支柱。计算机视觉技术能够从图像和视频中提取有用的信息,而深度学习则能够通过学习大量的数据来提高计算机视觉技术的性能。本文将探讨深…

简易加减运算器的制作----数字电路设计(含proteus仿真)

简易加减运算器的制作 一、功能要求—基本功能 1、自制0-9按键,在一个LED数码管上稳定地显示当前按下的值。(基本功能) 2、增加、两个按键,实现0-9两个一位数的加法运算,同时在两位LED上稳定地显示运算结果。&#…

[MySQL--进阶篇]存储引擎的体系结构、简介、特点、选择

前言 ⭐Hello!这里是欧_aita的博客。 ⭐今日语录:不要在乎别人怎么看你,因为他们根本就没有时间,他们只关心他们自己。 ⭐个人主页:欧_aita ψ(._. )>⭐个人专栏: 数据结构与算法 MySQL数据库 存储引擎 前言MySQL体…

class066 一维动态规划【算法】

class066 一维动态规划 算法讲解066【必备】从递归入手一维动态规划 code1 509斐波那契数列 // 斐波那契数 // 斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 // 该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。…

049:VUE 引入jquery的方法和配置

第049个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下,本专栏提供行之有效的源代码示例和信息点介绍,做到灵活运用。 (1)提供vue2的一些基本操作:安装、引用,模板使…

PWN动态调试

这篇文章就是来教大家学习怎么动态调试的,然后我还写了一篇关于动态调试的文章,不是buu上面的题,就是两道简单的栈溢出问题,那两道题挺有特点的。大家可以去看看。 每日3道PWN之课外2道(第2.5天)-CSDN博客 …

uniApp项目的创建,运行到小程序

一、项目创建 1. 打开 HBuilder X 2. 右击侧边栏点击新建,选择项目 3. 填写项目名,点击创建即可 注:uniapp中如果使用生命周期钩子函数,建议使用哪种 ?(建议使用Vue的) 二、运行 1. 运行前先登录 2. 登录后点击 manifest.js…

基于SSM的酒店管理旅店系统(Java毕业设计)

大家好,我是DeBug,很高兴你能来阅读!作为一名热爱编程的程序员,我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里,我将会结合实际项目经验,分享编程技巧、最佳实践以及解决问题的方法。无论你是…