// ==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://greasyfork.org/users/1249199 // @downloadURL none // ==/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(); }); })();