百度搜索过滤

在block_list中添加你想过滤的关键词,世界都将清净了

当前为 2022-05-03 提交的版本,查看 最新版本

// ==UserScript==
// @name         百度搜索过滤
// @namespace    huelse/js-scripts/baidu-filter
// @url          https://gitee.com/huelse/js-scripts/blob/master/baidu-filter.js
// @version      2.0.2
// @description  在block_list中添加你想过滤的关键词,世界都将清净了
// @author       THENDINGs
// @require      https://unpkg.com/[email protected]/dist/jquery.min.js
// @match        https://www.baidu.com/*
// @icon         https://www.baidu.com/favicon.ico
// @grant        unsafeWindow
// @license      GPLv3 License
// ==/UserScript==

(function() {
    'use strict';

    // 屏蔽关键词列表
    const block_list = ['baijiahao', 'CSDN', '广告'];

    function block() {
        const results = $('#content_left > div');
        for (let i = 0; i < results.length; i++) {
            const result = $(results[i]);
            // 删除块广告
            if (!result.attr('mu')) {
                // 避免卡片结果被删除
                if (!result.prop('className').includes('c-group-wrapper')) {
                    result.remove();
                }
            } else {
                // 删除关键词
                const labels = $(results[i]).find('.c-row.c-gap-top-xsmall');
                for (let k = 0; k < labels.length; k++) {
                    const elText = labels[k].innerText;
                    for (let j = 0; j < block_list.length; j++) {
                        if (elText.includes(block_list[j])) {
                            result.remove();
                            break;
                        }
                    }
                }
            }
        }
    }

    function relink() {
        const as = $('#content_left a');
        for (let i = 0; i < as.length; i++) {
            const cl = as[i].className.replace(/[\r\n\ ]/g, '');
            if (!cl || cl.length < 1) {
                let url = as[i].href.replace('http://', 'https://');
                if (!url.includes('eqid=')) url += '&wd=&eqid=';
                if (/\:\/\/www.baidu.com(?!\/s)/.test(url)) {
                    $.get(url, function(data) {
                        const real_url = /URL='(.+)'">/.exec(data);
                        if (real_url && real_url[1]) {
                            if (real_url[1].includes('baijiahao')) {
                                $(as[i]).parents('.result').remove();
                            } else {
                                as[i].href = real_url[1];
                            }
                        }
                    })
                }
            }
        }
    }

    document.querySelector('#wrapper_wrapper').addEventListener("DOMNodeInserted", function (e) {
        if (e.target.id == 'container') {
            setTimeout(block(), 100);
            setTimeout(relink(), 200);
        }
        if (e.target.id == '1') {
            setTimeout(block(), 100);
        }
    });

    $(function() {
        setTimeout(block(), 100);
        setTimeout(relink(), 200);
    });

})();