// ==UserScript== // @name 百度广告终极净化器 // @namespace http://tampermonkey.net/ // @version 2.0 // @description 精准移除百度搜索结果页的所有广告和推广内容 // @author Your Name // @match *://www.baidu.com/* // @match *://www.baidu.com/s?* // @grant none // @run-at document-start // ==/UserScript== (function() { 'use strict'; // 广告特征检测器 const isAdElement = (element) => { // 1. 检测已知广告标识 if (element.textContent.includes('广告') || element.textContent.includes('推荐') || element.textContent.includes('推广') || element.textContent.includes('保障') || element.querySelector('.ec_ad_title') || element.querySelector('.ec-sales-rec-link') || element.getAttribute('data-tuiguang') || element.getAttribute('data-ad')) { return true; } // 2. 检测样式特征 const style = window.getComputedStyle(element); if (style.backgroundColor === 'rgb(255, 249, 227)' || style.backgroundColor === 'rgb(250, 250, 250)' || element.className.includes('ec_') || element.className.includes('ad_')) { return true; } return false; }; // 广告清理函数 const removeAds = () => { console.log('[广告净化器] 开始扫描广告...'); let adsRemoved = 0; // 使用智能选择器 const potentialAds = [ ...document.querySelectorAll('.result'), ...document.querySelectorAll('.c-container'), ...document.querySelectorAll('.EC_result'), ...document.querySelectorAll('.result-op'), ...document.querySelectorAll('.rrc') ]; potentialAds.forEach(ad => { if (isAdElement(ad)) { console.log('[广告净化器] 检测到广告元素:', ad); // 双重移除策略 try { ad.style.display = 'none'; setTimeout(() => ad.remove(), 100); adsRemoved++; } catch (e) { console.warn('[广告净化器] 移除失败:', e); } } }); // 特别处理侧边栏广告 const rightSidebar = document.getElementById('content_right'); if (rightSidebar) { const sidebarAds = rightSidebar.querySelectorAll('div'); sidebarAds.forEach(ad => { if (isAdElement(ad)) { ad.remove(); adsRemoved++; } }); } console.log(`[广告净化器] 已移除 ${adsRemoved} 个广告`); // 视觉优化 document.querySelectorAll('.c-gap-bottom-small').forEach(elem => { if (elem.textContent.trim() === '') { elem.style.display = 'none'; } }); }; // 翻页检测系统 const setupPageObserver = () => { const mainContent = document.querySelector('#content_left') || document.querySelector('#container') || document.querySelector('#content_inner'); if (!mainContent) return; // 高灵敏度观察器 const observer = new MutationObserver(() => { console.log('[广告净化器] 检测到页面变化'); scheduleAdRemoval(); }); observer.observe(mainContent, { childList: true, subtree: true, attributes: false, characterData: false }); // 监控翻页按钮 document.querySelectorAll('a').forEach(link => { if (link.href.includes('pn=')) { link.addEventListener('click', () => { console.log('[广告净化器] 检测到翻页操作'); scheduleAdRemoval(); }); } }); }; // 智能计划器 let removalTimer = null; const scheduleAdRemoval = () => { if (removalTimer) clearTimeout(removalTimer); removalTimer = setTimeout(() => { removeAds(); // 增加二次扫描 setTimeout(removeAds, 1500); }, 1500); }; // 主启动函数 const init = () => { console.log('[广告净化器] 脚本已激活'); // 初始清理 scheduleAdRemoval(); // 设置页面观察器 setupPageObserver(); // 增加保底扫描 setInterval(removeAds, 5000); }; // 等待DOM就绪 if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { setTimeout(init, 100); } })();