对Bilibili的视频卡片,以标签、标题、UP主、时长、竖屏、充电、评论等信息来屏蔽视频,附带去除视频卡片中的直播、广告、推广内容的功能。
< Feedback on Bilibili 按标签、标题、时长、UP主屏蔽视频
使用BewlyBewly网页插件美化bilibili,并同时使用该插件时,首页会因为获取视频列表失败而导致屏蔽失效,对部分代码进行修改可以修复: 将function getVideoElements()函数修改成如下内容:
// 获取视频元素 function getVideoElements() { // 获取所有有可能是视频元素的标签 //let videoElements = document.querySelectorAll( // div.bili-video-card 首页(https://www.bilibili.com/)、分区首页(https://www.bilibili.com/v/*)、搜索页面(https://search.bilibili.com/*) // div.video-page-card-small 播放页右侧推荐(https://www.bilibili.com/video/BV****) // li.bili-rank-list-video__item 分区首页-子分区右侧热门(https://www.bilibili.com/v/*) // div.video-card 综合热门(https://www.bilibili.com/v/popular/all) 、每周必看(https://www.bilibili.com/v/popular/weekly) 、入站必刷(https://www.bilibili.com/v/popular/history) // div.video-card-reco 旧版首页推送(https://www.bilibili.com/) // div.video-card-common 旧版首页分区(https://www.bilibili.com/) // div.rank-wrap 旧版首页分区右侧排行(https://www.bilibili.com/) //"div.bili-video-card, div.video-page-card-small, li.bili-rank-list-video__item, div.video-card, div.video-card-reco, div.video-card-common, div.rank-wrap, div.video-card.group" //); let videoElements; if (window.location.href === "https://www.bilibili.com/"){ //获取shadowDOM父标签 let container = document.getElementById("bewly"); let shadowRoot = container.shadowRoot; //获取视频列表 videoElements = shadowRoot.querySelectorAll("div.bili-video-card, div.video-page-card-small, li.bili-rank-list-video__item, div.video-card, div.video-card-reco, div.video-card-common, div.rank-wrap, div.video-card.group"); //为刷新视频列表按钮添加事件监听器再次调用屏蔽器,否则刷新的视频列表无法屏蔽,调用屏蔽器时延时调用,不然获取不到视频列表 shadowRoot.querySelector("button.b-button.b-button--type-default.b-button--size-small").addEventListener("click", ()=>{ setTimeout(FuckYouBilibiliRecommendationSystem, 1000); }, { once: true }); } else{ //如果不是首页,没有获取视频列表问题,使用原来的获取方式即可 videoElements = document.querySelectorAll( "div.bili-video-card, div.video-page-card-small, li.bili-rank-list-video__item, div.video-card, div.video-card-reco, div.video-card-common, div.rank-wrap, div.video-card.group" ); } //let videoElements = document.getElementsByClassName("video-card"); // 过滤掉没有包含a标签的元素 videoElements = Array.from(videoElements).filter((element) => element.querySelector("a")); // 返回处理后的结果 return videoElements; }
将1186行左右页面加载结束运行脚本的部分进行延时,否则太早获取视频列表无法成功(可以尝试把延时时间缩短,单位是ms)如下:
// 页面加载完成后运行脚本 window.addEventListener("load", ()=>{ setTimeout(FuckYouBilibiliRecommendationSystem, 1000); });
Sign in to post a reply.
使用BewlyBewly网页插件美化bilibili,并同时使用该插件时,首页会因为获取视频列表失败而导致屏蔽失效,对部分代码进行修改可以修复: 将function getVideoElements()函数修改成如下内容:
将1186行左右页面加载结束运行脚本的部分进行延时,否则太早获取视频列表无法成功(可以尝试把延时时间缩短,单位是ms)如下: