您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
在B站搜索页按UP主、标题、时长过滤搜索结果(仅限视频),需手动点击“过滤本页”按钮
// ==UserScript== // @name B站搜索结果过滤 // @namespace Violentmonkey Scripts // @version 1.1.230307 // @description 在B站搜索页按UP主、标题、时长过滤搜索结果(仅限视频),需手动点击“过滤本页”按钮 // @author 神豚 with AI // @match https://search.bilibili.com/* // @grant none // ==/UserScript== (function() { 'use strict'; /* 以下设置参数,所有白名单优先级均高于黑名单 ***注意自行备份设置,以免脚本更新时被预设值覆盖*** */ const author_blacklist = ['影视', '电影', '剪辑', '解说', '说剧', '聊剧', '看剧', '追剧', '剧场', '剧坊', '说影', '谈影', '看影', '观影', '探影', '放映厅', '娱乐', '说娱', '吹娱', 'bili_']; //(黑)设置想过滤的UP主字眼,可写全名也可写部分 const author_whitelist = ['电影频道融媒体中心']; //(白)设置UP主白名单 const uid_blacklist = []; //(黑)设置想过滤的UP主uid,无需引号 const uid_whitelist = [343084292, 385144384, 1955015531]; //(白)设置uid白名单 const uid_threshold = 3400000000000000; //(黑)过滤uid大于该值的所有新用户,设置0则不启用(新用户uid长度:16,预设值:3400000000000000) const title_blacklist = []; //(黑)设置想过滤的标题字眼 const title_whitelist = []; //(白)设置标题白名单 const duration_threshold = 900; //(白)不过滤时长大于等于该值的所有长视频,设置0则不启用(单位:秒,预设值:900) /* 以下功能:在“更多筛选”前面增加“过滤本页”按钮,点击时根据上面设置过滤搜索结果并显示过滤数量 */ setTimeout(() => { let oldbutton = document.querySelector('.vui_button.vui_button--active-shrink.i_button_more'); let newbutton = document.createElement('button'); newbutton.className = 'vui_button'; newbutton.innerHTML = `过滤本页`; let textnode = document.createElement('span'); textnode.id = 'filter-count'; textnode.style.color = 'rgb(0,174,236)'; textnode.innerHTML = `待过滤`; oldbutton.parentNode.insertBefore(newbutton, oldbutton); newbutton.parentNode.insertBefore(textnode, newbutton.nextSibling); newbutton.onclick = () => { let count = 0; let divs = document.querySelectorAll('.video-list-item, .col_3.col_xs_1_5.col_md_2.col_xl_1_7.mb_x40'); //兼容新旧class divs.forEach(div => { if (![...div.classList].some(className => className.includes('to_hide_md'))) { let author = div.querySelector('.bili-video-card__info--author').innerHTML; let title = div.querySelector('.bili-video-card__info--tit').innerHTML; let uid = div.querySelector('.bili-video-card__info--owner').getAttribute('href').match(/\/\/space\.bilibili\.com\/(\d+)/); let duration = 0; let time_str = div.querySelector('.bili-video-card__stats__duration').textContent.split(':'); if (time_str.length == 3) { duration = parseInt(time_str[0]) * 3600 + parseInt(time_str[1]) * 60 + parseInt(time_str[2]); } else if (time_str.length == 2) { duration = parseInt(time_str[0]) * 60 + parseInt(time_str[1]); } let black1 = author && author_blacklist.some(word => author.includes(word)); let white1 = author && author_whitelist.some(word => author.includes(word)); let black2 = uid && uid_blacklist.includes(parseInt(uid[1])); let white2 = uid && uid_whitelist.includes(parseInt(uid[1])); let black3 = uid_threshold > 0 && uid && parseInt(uid[1]) > uid_threshold; let black4 = title && title_blacklist.some(word => title.includes(word)); let white4 = title && title_whitelist.some(word => title.includes(word)); let white5 = duration_threshold > 0 && duration >= duration_threshold; if ( ( black1 || black2 || black3 || black4 ) && !( white1 || white2 || white4 || white5 ) ) { div.style.display = 'none'; count++; } } }); textnode.innerHTML = `已过滤${count}项`; }; }, 500); //页面加载后延迟500毫秒执行,延时太短会失败 /* 以下功能:翻页、筛选、重新搜索时重置过滤数量 */ function bindButtons() { let page_buttons = document.querySelectorAll('.vui_button.vui_pagenation--btn, .vui_button--tab, .search-button, .suggest-item, .history-text, .trending-text'); page_buttons.forEach(function(page_button) { if (!page_button.classList.contains('vui_button--active')) { page_button.addEventListener('click', handleClick); } }); let search_input = document.querySelector('.search-input-el'); if (search_input) { search_input.addEventListener('keydown', function(event) { if (event.key == 'Enter') { handleClick(); } }); } } function handleClick() { let textnode = document.querySelector('#filter-count'); if (textnode) { textnode.innerHTML = `待过滤`; } } window.addEventListener('load', function() { setTimeout(bindButtons, 500); }); let observer = new MutationObserver(bindButtons); observer.observe(document.body, {childList: true, subtree: true}); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址