屏蔽 CSDN

屏蔽 CSDN 及其它垃圾信息

目前为 2024-01-17 提交的版本。查看 最新版本

// ==UserScript==
// @name        屏蔽 CSDN
// @version     1.0
// @author      aaron
// @description 屏蔽 CSDN 及其它垃圾信息
// @match       https://www.baidu.com
// @match       https://www.baidu.com/s*
// @match       https://www.google.com
// @match       https://www.google.com/search*
// @require      https://cdn.staticfile.org/jquery/3.4.1/jquery.min.js
// @grant        GM_addStyle
// @grant        GM_xmlhttpRequest
// @license      MIT
// @namespace https://gf.qytechs.cn/users/1249199
// ==/UserScript==

(function () {

    // 标题
    const titleArr = ["CSDN博客","简书","51CTO","博客园", "软件园", "下载之家", "下载网",
        "百度健康", "快速问医生", "求医网", "求医问药", "家庭医生","亿速云","动力节点在线","IT 技术博客",
        "千锋教育","虎课网","黑马程序员","FinClip","tie.pub","php中文网","mybj123.com","脚本之家","今日头条","慕课网实战课程","群英网络"];

    // 标题匹配正则
    const titleRegex = ["- csdn$"];

    // 描述
    const descArr = ["为您推荐的内容", "阿里云为您提供",];

    // 屏蔽来源(包含关键字则屏蔽)
    const sourceArr = ["博客园", "CSDN博客", "CSDN技术社区", "csdn.net", "百度知道", "腾讯云计算",
        "百度文库", "华军软件园", "当下软件园", "东坡下载站",
        "系统之家", "软件园", "/soft/", "软件", "下载网", "寻医",
        "健康", "健客网", "医生", "柠檬爱美", "紫一商城", "120.net", "求医", "宝宝知道", "58codes.com", "itgh.cn", "frontend.devrank.cn", "codeleading.com", "nzw6.com","悠悠之家","pythonjishu.com","脚本之家","jb51.net"];

    window.exec = function () {
        let contentLeft = document.getElementById("content_left");
        let documents = $(contentLeft).find('div[class*="result"]');

        let googleContentLefts = document.getElementById("center_col");
        let googleDocuments = $(googleContentLefts).find('div[class*="MjjYud"]');

        for (let i = googleDocuments.length - 1; i >= 0; i--) {
            isRemove(googleDocuments[i]);
        }
    };

    function isRemove(document) {
        const title = getTitle(document);
        const desc = getDesc(document);
        const source = getSource(document);

        const removeByArray = (text, arr, type) => {
            for (const element of arr) {
                if (text.includes(element)) {
                    document.remove();
                    return;
                }
            }
        };

        if (title) {
            for (const element of titleRegex) {
                if (new RegExp(element).test(title)) {
                    document.remove();
                    return;
                }
            }
            removeByArray(title, titleArr, 'title');
        }

        if (desc) {
            removeByArray(desc, descArr, 'desc');
        }

        if (source) {
            removeByArray(source, sourceArr, 'source');
        }
    }

    /**
     * 获取文章信息
     * @param {*} element
     * @param {string} selector
     * @returns {string}
     */
    function getArticleInfo(element, selector) {
        try {
            const selectedElement = element.querySelector(selector);
            return selectedElement ? selectedElement.innerText : "";
        } catch (error) {
            handleError('get error', error);
        }
        return "";
    }

    /**
     * 获取文章标题
     * @param {*} element
     * @returns {string}
     */
    function getTitle(element) {
        // return getArticleInfo(element, ".t");
        return getArticleInfo(element, ".GTRloc");
    }

    /**
     * 获取文章描述
     * @param {*} element
     * @returns {string}
     */
    function getDesc(element) {
        return getArticleInfo(element, 'span[class*="content"]');
    }

    /**
     * 获取文章来源
     * @param {*} element
     * @returns {string}
     */
    function getSource(element) {
        return getArticleInfo(element, 'div[class*="source"]');
    }

    /**
     * 通用错误处理函数
     * @param {string} message
     * @param {Error} error
     */
    function handleError(message, error) {
        console.error(`${message}`, error);
    }

    /**
     * 屏蔽内容
     */
    function hiddenContent() {
        let timer;

        document.body.addEventListener("DOMNodeInserted", (e) => {
            if (timer) {
                window.clearTimeout(timer);
            }
            timer = window.setTimeout(() => {
                exec();
            }, 100);
        });
    }

    $(function () {
        hiddenContent();
    });

})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址