您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
屏蔽百度新闻视频评论中包含"大病"、"生病"、"治疗"、"求助"、"好心"等关键词的评论
// ==UserScript== // @name 百度新闻视频评论关键词屏蔽 // @namespace https://github.com/zuiyuewentian/ClearBaiduAd // @version 1.0 // @description 屏蔽百度新闻视频评论中包含"大病"、"生病"、"治疗"、"求助"、"好心"等关键词的评论 // @author zuiyuewentian // @match https://mbd.baidu.com/newspage/data/* // @grant none // @license Apache-2.0 // ==/UserScript== (function() { 'use strict'; // 定义需要屏蔽的关键词 const keywords = ['大病', '生病', '治疗', '求助', '好心']; // 检查文本是否包含关键词 function containsKeyword(text) { if (!text) return false; return keywords.some(keyword => text.includes(keyword)); } // 处理评论的函数 function processComments() { // 获取所有评论项 const commentItems = document.querySelectorAll('.xcp-item'); commentItems.forEach(item => { // 获取用户名 const usernameElement = item.querySelector('.user-bar-uname'); const username = usernameElement ? usernameElement.textContent.trim() : ''; // 获取评论内容 const contentElement = item.querySelector('.x-interact-rich-text'); let content = ''; if (contentElement) { // 获取所有文本内容 const textElements = contentElement.querySelectorAll('.type-text'); content = Array.from(textElements).map(el => el.textContent).join(''); } // 如果用户名或内容包含关键词,则隐藏该评论 if (containsKeyword(username) || containsKeyword(content)) { item.style.display = 'none'; console.log('已屏蔽评论:', { username, content }); } }); } // 页面加载完成后执行 window.addEventListener('load', function() { // 初始处理 setTimeout(processComments, 2000); // 延迟2秒确保评论加载完成 // 监听DOM变化,处理动态加载的评论 const observer = new MutationObserver(function(mutations) { let shouldProcess = false; mutations.forEach(function(mutation) { if (mutation.addedNodes.length > 0) { // 检查新增的节点中是否包含评论 for (let node of mutation.addedNodes) { if (node.nodeType === 1) { // 元素节点 if (node.classList && node.classList.contains('xcp-item')) { shouldProcess = true; break; } // 检查子节点中是否包含评论 if (node.querySelector && node.querySelector('.xcp-item')) { shouldProcess = true; break; } } } } }); if (shouldProcess) { setTimeout(processComments, 500); // 延迟处理,确保内容渲染完成 } }); // 开始监听 observer.observe(document.body, { childList: true, subtree: true }); }); // 定期处理,防止遗漏 setInterval(processComments, 5000); })();