百度搜索过滤

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

当前为 2022-04-16 提交的版本,查看 最新版本

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

(function() {
    'use strict';

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

    function block() {
        setTimeout(function() {
            const results = $('#content_left > div');
            for (let i = 0; i < results.length; i++) {
                const result = $(results[i]);
                // 删除块广告
                if (!result.attr('mu')) {
                    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;
                            }
                        }
                    }
                }
            }
        }, 100);
    }

    function relink() {
        setTimeout(function() {
            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];
                                }
                            }
                        })
                    }
                }
            }
        }, 200);
    }

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

    $(function() {
        block();
        relink();
    });

})();