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

在这里插入图片描述

这张图花里胡哨的是让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 脚本功能完善

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vue3:修改下拉框el-select的样式

问题 在Vue3项目中,使用了elemen-plus的下拉框,但是使用深度修改下拉框的样式(比如下拉框的背景颜色)一直不生效 解决 给下拉框框添加 popper-class属性,属性名根据需求取,比如这里取的是"selectSt…

【Docker】进阶之路:(一)容器技术发展史

【Docker】进阶之路:(一)容器技术发展史 什么是容器为什么需要容器容器技术的发展历程Docker容器是如何工作的 什么是容器 容器作为一种先进的虚拟化技术,已然成为了云原生时代软件开发和运维的标准基础设施。在了解容器技术之前…

【LeetCode刷题】-- 137.只出现一次的数字II

137.只出现一次的数字II class Solution {public int singleNumber(int[] nums) {Map<Integer,Integer> map new HashMap<>();for(int num : nums){Integer count map.get(num);if(count null){count 1;}else{count;}map.put(num,count);}for(Integer val:map.…

2023年安全员-B证证考试题库及安全员-B证试题解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2023年安全员-B证证考试题库及安全员-B证试题解析是安全生产模拟考试一点通结合&#xff08;安监局&#xff09;特种作业人员操作证考试大纲和&#xff08;质检局&#xff09;特种设备作业人员上岗证考试大纲随机出的…

LeetCode---374周赛

题目列表 2951. 找出峰值 2952. 需要添加的硬币的最小数量 2953. 统计完全子字符串 2954. 统计感冒序列的数目 一、找到峰值 这个简单的模拟&#xff0c;代码如下 class Solution { public:vector<int> findPeaks(vector<int>& mountain) {int nmountain…

【附源码】完整版,Python+Selenium+Pytest+POM自动化测试框架封装

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、测试框架简介 …

[每周一更]-(第76期):Go源码阅读与分析的方式

读源码可以深层理解Go的编写方式&#xff0c;理解作者们的思维方式&#xff1b;也有助于对Go语法用法深刻的理解&#xff0c;我们从这一篇说一下如何读源码&#xff0c;从哪些源码着手&#xff0c;从 简单到深入的方式学习源码&#xff1b; 学习源码也是一个修炼过程&#xff0…

科技改变旅游,道观漫游可视化:智能化管理助力道观游览

道观漫游可视化是一种通过技术手段实现道观游览的可视化展示方式&#xff0c;让游客能够更加直观地了解道观的历史、文化和建筑特色。 随着旅游业的不断发展&#xff0c;道观漫游可视化已经成为了旅游行业中的一个重要方向&#xff0c;吸引了越来越多的游客前来体验。 道观漫游…

Excel 动态拼接表头实现导出

public class Column {//单元格内容private String content;//字段名称&#xff0c;用户导出表格时反射调用private String fieldName;//这个单元格的集合private List<Column> listTpamscolumn new ArrayList<Column>();int totalRow;int totalCol;int row;//exc…

vue使用echarts显示中国地图

项目引入echarts以后&#xff0c;在页面创建canvas标签 引入一个公共js文件&#xff08;下面这段代码就是china.js文件&#xff09; (function (root, factory) {if (typeof define function && define.amd) {// AMD. Register as an anonymous module.define([ex…

孜然地址引导页V9(带后台)

刚刚在浏览之前经常访问的网站的时候我发现他不用那个域名了&#xff0c;然后我见这个页面好看&#xff0c;就把他干下来了&#xff0c;然后把给他写了个后台。另外如果你的子页面收录多的话&#xff0c;人家百度访问你的子页面会显示404的&#xff0c;所以为了流量可观安装这个…

【带头学C++】----- 九、类和对象 ---- 9.8 动态对象创建

目录 9.8 动态对象创建 9.8.1 动态创建对象基础概念 9.8.2 C语言创建动态对象的 9.8.3 new创建动态对象 9.8.4 delete释放动态对象 9.8.5 动态对象数组 9.8 动态对象创建 9.8.1 动态创建对象基础概念 在创建数组时&#xff0c;我们通常需要预先指定数组的长度&#xff0…

三个臭皮匠(ctr,nerdctl,crictl)顶一个诸葛亮(docker)

文章目录 containerd简介 nerdctl简介安装精简 Minimal 安装完整Full 安装启动服务 命令参数容器运行容器列出容器详情容器日志容器进入容器停止容器删除镜像列表镜像拉取镜像标签镜像导出镜像导入镜像删除镜像构建配置tab键配置加速配置仓库http方式https方式 ctr简介命令参数…

java--Calendar

1.Calendar ①代表的是系统此刻时间对应的日历 ②通过它可以单独获取、修改时间中的年、月、日、时、分、秒等(月份是从0开始的)。 2.Calender日历类的常见方法 注意&#xff1a;calender是可变对象&#xff0c;一旦修改后其对象本身表示的时间将产生变化。

8. MySQL 触发器

目录 概述 定义 触发器特性&#xff1a; 基础操作 创建触发器 NEW和OLD 其他操作 查看触发器 删除触发器 注意事项 概述 定义 触发器&#xff0c;就是一种特殊的存储过程。触发器和存储过程一样是一个能够完成特定功能、存储在数据库服务器上的SQL片段&#xff0c;但是触…

Serverless单体架构的崛起

在过去的几十年里&#xff0c;我们见证了应用架构以快速的速度演变。当我还是一个年轻的程序员时&#xff0c;开始编写一个简单的代码库&#xff0c;我们可以称之为单体应用。 我记得为前端编写了一些HTML/CSS&#xff0c;后端用了一些Java。但后来&#xff0c;随着时代发展和…

系统设计之Nginx

一、Nginx是什么 Nginx ("engine x") 是一个开源的&#xff0c;支持高性能、高并发的 Web 服务和代理服务软件。它是由俄罗斯人 Igor Sysoev 开发的&#xff0c;最初被应用在俄罗斯的大型网站 www.rambler.ru 上。后来作者将源代码以类 BSD 许可的形式开源出来供全球…

2023年山东省职业院校技能大赛信息安全管理与评估第一阶段样题

2023年山东省职业院校技能大赛信息安全管理与评估样题 竞赛需要完成三个阶段的任务&#xff0c;分别完成三个模块&#xff0c;总分共计 1000 分。三个模块内容和分值分别是&#xff1a; \1. 第一阶段&#xff1a;模块一 网络平台搭建与设备安全防护&#xff08;240 分钟&…

Nginx负载均衡实战

&#x1f3b5;负载均衡组件 ngx_http_upstream_module https://nginx.org/en/docs/http/ngx_http_upstream_module.html upstream模块允许Nginx定义一组或多组节点服务器组&#xff0c;使用时可以通过多种方式去定义服务器组 样例&#xff1a; upstream backend {server back…

2023中国(海南)国际高尔夫旅游文化博览会 暨国际商界峰层·全球华人高尔夫精英巡回赛 全国颍商自贸港行盛大启幕

2023中国&#xff08;海南&#xff09;国际高尔夫旅游文化博览会&#xff08;以下简称“海高博”&#xff09;暨全国颍商走进海南自贸港于12月7-9日在海口观澜湖盛大开幕。该活动由中国国际贸易促进委员会海南省委员会、海南省旅游和文化广电体育厅主办&#xff0c;中国国际商会…