百度搜索结果过滤

在下方block_list中添加你想过滤的网站,世界都将清净了

当前为 2021-06-03 提交的版本,查看 最新版本

// ==UserScript==
// @name         百度搜索结果过滤
// @namespace    https://gitee.com/huelse/baidu-filter
// @version      0.9
// @description  在下方block_list中添加你想过滤的网站,世界都将清净了
// @author       THENDINGs
// @include      https://www.baidu.com/s*
// @match        https://www.baidu.com/s*
// @icon         https://www.baidu.com/favicon.ico
// @license      GPL License
// ==/UserScript==

(function() {
    'use strict';

    // 屏蔽列表(默认为搜索结果的脚标)
    const block_list = ['广告', 'CSDN', '脚本之家', '百度知道', '百度经验', '腾讯云', '阿里云', '达内'];

    // 屏蔽函数
    function block() {
        const arr = $.merge($('#content_left span'), $('#content_left a'));
        $.each(arr, function(idx, el) {
            const container = $(el).parents('.c-container');
            $.each(block_list, function(index, ele) {
                if (el.innerText.indexOf(ele) !== -1 && container.css('display') !== 'none') {
                    container.css('display', 'none');
                    console.log('屏蔽: ' + el.innerText + ' ' + el.href);
                }
            });
        });
    }

    // 获取有效链接
    function relink() {
        const a = $('#content_left a');
        $.each(a, function(idex, el) {
            const container = $(el).parents('.new-pmd');
            // 屏蔽百家号1
            if(el.href.includes('baijiahao') && container.css('display') !== 'none') {
                container.css('display', 'none');
                console.log('屏蔽百家号1: ' + el.href);
                return;
            }
            let url = el.href.replace('http://', 'https://');
            // 过滤trust.baidu.com等百度二级域名
            if(!/www.baidu.com/.exec(url)) return;
            // 过滤图片url
            if(el.className.includes('img')) return;
            // 带上eqid查询
            if(!url.includes('eqid')) url += '&wd=&eqid=';
            $.get(url, function(data) {
                const real_url = /URL='(.+?)'">/.exec(data);
                if (real_url && real_url[1]) {
                    el.href = real_url[1];
                    // 屏蔽百家号2
                    if (real_url[1].includes('baijiahao') && container.css('display') !== 'none') {
                        container.css('display', 'none');
                        console.log('屏蔽百家号2: ' + el.href);
                    }
                }
            });
        });
    }

    // 监听页面搜索结果加载(适配AC-baidu插件)
    $('#wrapper_wrapper').on('DOMSubtreeModified DOMNodeInserted', function() {
        block();
    })

    // 页面加载调用
    $(function() {
        relink();
        block();
    });

})();