Greasy Fork

百度搜索结果关键词屏蔽

屏蔽烦人的推荐和关键词、以及一些烦人的明星

目前为 2018-06-13 提交的版本。查看 最新版本

// ==UserScript==
// @name         百度搜索结果关键词屏蔽
// @namespace    http://tampermonkey.net/
// @version      0.13
// @description  屏蔽烦人的推荐和关键词、以及一些烦人的明星
// @author       sunwukong
// @match        https://www.baidu.com/s?*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    var sbList = new Array("关键词1","关键词2");

    // 执行过滤
    function doFilter(){

        // 相关人物
        var xgrw = document.querySelectorAll(".c-row.c-gap-top");
        for(var e = 0; e < xgrw.length; e++){
            var xgItem = xgrw[e].querySelectorAll(".opr-recommends-merge-item");
            for(var f=0;f<xgItem.length;f++){

                if(sbFilter(xgItem[f].querySelector(".c-gap-top-small").innerHTML)){
                    xgItem[f].querySelector(".c-gap-top-small").innerHTML = '';
                    xgItem[f].querySelector(".opr-recommends-merge-d").innerHTML = '';
                    xgItem[f].querySelector(".opr-recommends-merge-p").innerHTML = '已过滤';
                }
            }

        }

        // 相关搜索
        var xg = document.getElementById("rs").querySelector("table").querySelector("tbody").querySelectorAll("tr");
        for(var b=0;b<xg.length;b++){
            var xgth = xg[b].querySelectorAll("th");
            for(var c=0;c<xgth.length;c++){
                var likeContent = xgth[c].querySelector("a").innerHTML;
                if(sbFilter(likeContent)){
                    xgth[c].innerHTML = "<a style='color:#999;font-size:12px;font-weight:normal;'>已过滤</a>";
                }
            }

        }

        // 百科
        var opResult = document.querySelectorAll(".result-op.c-container");
        for( var a = 0;a<opResult.length;a++){
            var op = opResult[a];
            if(op.querySelector("h3")){
                var opContent = op.querySelector("h3").querySelector("a").innerHTML;
                if(sbFilter(opContent)){
                    op.innerHTML = "<h3><a style='color:#999;font-size:12px;font-weight:normal;'>已过滤</a></h3>";
                }
            }

        }

        //var opResult2 = document.querySelectorAll(".result-op.c-container.xpath-log");
        //for( var a2 = 0 ; a2 < opResult2.length ; a2++ ){
        //    var op2 = opResult2[a2];
        //    var opContent2 = op2.querySelector("h3").querySelector("a").innerHTML;
        //    console.log(opContent2);
        //    if(sbFilter(opContent2)){
        //        op2.innerHTML = "<h3><a style='color:#999;font-size:12px;font-weight:normal;'>已过滤</a></h3>";
        //    }
        //}


        // 搜索结果
        var searchResult = document.querySelectorAll(".result.c-container");
        for( var i = 0 ; i < searchResult.length ; i++ ){
            var result = searchResult[i],
                resultContent = result.querySelector("h3").querySelector("a").innerHTML;
            if(sbFilter(resultContent)){
                result.innerHTML = "<h3><a style='color:#999;font-size:12px;font-weight:normal;'>已过滤</a></h3>";
            }
        }

        // 搜索热点
        var hotResult = document.querySelectorAll(".c-table.opr-toplist-table");
        for(var l = 0;l < hotResult.length;l++){
            var hotEmele = hotResult[l].querySelector("tbody").querySelectorAll("tr");
            for( var j = 0;j < hotEmele.length ; j++ ){
                var hot = hotEmele[j],
                    hotContent = hot.querySelector("td").querySelector("a").innerHTML;
                if(sbFilter(hotContent)){
                    hot.innerHTML = "<td style='color:#999;font-size:12px'><a>已过滤</a></td>";
                }
            }
        }


    }

    // SB filter
    function sbFilter(content){
        console.log(content);
        content = content.toLowerCase();
        for (var i in sbList){
            if(content.indexOf(sbList[i].toLowerCase())>=0){
                return true;
            }
        }
        return false;
    }

    // 检测内容区域是否变化
    var len = document.getElementById("container").innerHTML.length;
    setInterval(function(){
        var newLen = document.getElementById("container").innerHTML.length;
        if(len!=newLen){
            len = newLen;
            doFilter();
        }
    },300);





    // Your code here...
})();