// ==UserScript== // @name Fuck Baidu // @namespace http://tampermonkey.net/ // @version 1.7 // @description:zh-CN 屏蔽搜索引擎中来自百度的搜索结果 // @description:en-US Filter out all search results from "baidu.com" for some search engines. // @author Hijack_Nick & Spectrollay // @match *://*.google.com/* // @match *://*.bing.com/* // @match *://*.yahoo.com/* // @match *://*.yandex.com/* // @match *://duckduckgo.com/* // @grant none // @license MIT // @description 屏蔽搜索引擎中来自百度的搜索结果 Filter out all search results from "baidu.com" for some search engines. // @downloadURL none // ==/UserScript== (function() { 'use strict'; const filterKeywords = ['baidu.']; function filterResults() { let results = []; if (location.hostname.includes('google.com')) { results = document.querySelectorAll('.g'); } else if (location.hostname.includes('bing.com')) { results = document.querySelectorAll('.b_algo'); } else if (location.hostname.includes('yahoo.com')) { results = document.querySelectorAll('.dd.algo'); } else if (location.hostname.includes('yandex.com')) { results = document.querySelectorAll('.k_5ay1tJkv0OU_card'); } else if (location.hostname.includes('duckduckgo.com')) { results = document.querySelectorAll('li[data-layout="organic"]'); } results.forEach(result => { const resultText = result.innerText.toLowerCase(); filterKeywords.forEach(keyword => { if (resultText.includes(keyword)) { result.style.display = 'none'; } }); }); } filterResults(); const searchInput = document.querySelector('input[name="q"], input[name="p"], input[name="text"], #sb_form_q'); if (searchInput) { searchInput.addEventListener('input', () => { const results = document.querySelectorAll('.g, .b_algo, .dd.algo, .serp-item, .result'); results.forEach(result => { result.style.display = ''; }); filterResults(); }); const searchForm = searchInput.closest('form'); if (searchForm) { searchForm.addEventListener('submit', (event) => { event.preventDefault(); filterResults(); }); } } const observer = new MutationObserver((mutations) => { mutations.forEach((mutation) => { if (mutation.addedNodes.length || mutation.removedNodes.length) { filterResults(); } }); }); observer.observe(document.body, { childList: true, subtree: true }); })();