您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
自动隐藏搜索引擎中的CSDN结果并显示统计信息
// ==UserScript== // @name CSDN搜索结果屏蔽器 // @namespace http://tampermonkey.net/ // @version 1.2 // @description 自动隐藏搜索引擎中的CSDN结果并显示统计信息 // @author GNEH // @match *://www.baidu.com/s* // @match *://www.google.com/search* // @match *://cn.bing.com/search* // @license MIT // @grant none // ==/UserScript== (function() { 'use strict'; // 创建统计面板 const createStatsPanel = () => { const panel = document.createElement('div'); panel.style = ` position: fixed; right: 20px; bottom: 20px; background: rgba(0,0,0,0.8); color: white; padding: 15px; border-radius: 5px; z-index: 9999; font-family: Arial, sans-serif; `; panel.innerHTML = ` <div id="csdn-stats">隐藏CSDN结果:<span id="count">0</span> 条</div> <div id="csdn-links" style="margin-top:10px;max-height:200px;overflow-y:auto"></div> `; document.body.appendChild(panel); return {count: panel.querySelector('#count'), links: panel.querySelector('#csdn-links')}; }; // 检测并隐藏CSDN结果 const processResults = (container, stats) => { let hiddenCount = 0; const csdnLinks = []; // 遍历搜索结果项 container.querySelectorAll('.result, .g, .b_algo').forEach(item => { // 百度搜索结果判断 const isBaidu = item.querySelector('.c-container') !== null; // 谷歌/Bing结果判断 const isGoogle = item.querySelector('.tF2Cxc, .b_algo') !== null; // 检测CSDN特征 const isCSDN = (isBaidu && item.querySelector('.c-color-gray')?.textContent.includes('CSDN')) || (isGoogle && item.querySelector('h3')?.textContent.includes('CSDN')) || item.querySelector('a')?.href.includes('csdn.net'); if (isCSDN) { hiddenCount++; const link = item.querySelector('a')?.href; if (link) csdnLinks.push(link); item.style.display = 'none'; } }); // 更新统计面板 stats.count.textContent = hiddenCount; stats.links.innerHTML = csdnLinks.map(link => `<a href="${link}" target="_blank" style="display:block;color:#4CAF50;margin:5px 0">${link}</a>` ).join(''); }; // 主执行函数 const init = () => { const statsPanel = createStatsPanel(); const observer = new MutationObserver((mutations) => { document.querySelectorAll('.result, .g, .b_algo').forEach(container => { processResults(container, statsPanel); }); }); // 初始处理 document.querySelectorAll('.result, .g, .b_algo').forEach(container => { processResults(container, statsPanel); }); // 监听动态加载内容 observer.observe(document.body, { childList: true, subtree: true }); }; // 延迟执行避免冲突 setTimeout(init, 1000); })();