多年来,我习惯于用百度搜索来查找资料,关注热点讯息。
然而搜索结果中总是会出现一些广告,和不想看到的内容。
自从学了JavaScript脚本语言,我尝试着自己写了段代码,果然好用,问题迎刃而解。
此代码目前实现的功能:
屏蔽搜索结果出现的所有推广,包括左栏、右栏广告以及延时广告
使用前↑
使用后↑
对搜索结果进行关键词过滤,移除不想看到的内容
比如,我不想看到百度招聘,然而它总是出现:
使用前
使用后↑打工是不可能打工的,这辈子不可能打工٩( 'ω' )و
我也不想看到有关星座运势、解梦的内容:
使用前↑
使用后↑
还可以对搜索结果出现的【词语】进行替换(而不是屏蔽整条结果),此功能仅供娱乐
词语替换↑
至此,搜索结果已经做到清爽干净,基本符合预期

然而我还实现了几个附加的小功能,如
热点资讯的文字完全显示,再也不用点进去才能看全标题
或什么?被什么?↑
使用后↑
结果数文字醒目显示
结果数文字↑
恢复了某些搜索词“根据相关法律法规和政策,部分搜索结果未予显示”这行文字,仅供娱乐
未予显示↑
未予显示↑
点击所有链接,不弹出新窗口
RT
多彩背景图,每搜索一次都会自动随机换一张背景图【靓!】
背景图随机换↑
背景图随机换↑
背景图随机换↑
搜索结果强行50条,少翻页
使用前↑
使用后↑
还有对图标和按钮文字替换等等,以上是这个脚本的全部功能。

代码如下:
代码↑
/*名不好就受气作品*/ if(document.URL.substring(0, 24) === 'https://www.baidu.com/s?') { onload = function () { "use strict"; if(!/[^a-zA-Z0-9_]rn=50/.test(document.URL) || !/[^a-zA-Z0-9_]tn=/.test(document.URL)) { /*var u = document.URL.replace(/([\?&])(rn=[^=&\?#\s]*[&#$])/, '$1').replace(/(\/s\?)/i, '$1rn=50&');*/ var wd = (document.URL + '#').match(/[^a-zA-Z0-9_](wd|word)=([^!#&]+)[!#&]/i)[2]; var u = 'https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=2&tn=baiduhome_pg&wd=' + wd + '&ct=1&rn=50&rsv_spt=1&rsv_pq=a51dd4eb15527649518&rsv_t=214fnSsdvmqfBfbKGGp%2FOKeu8c%2ByfzVhMkZZGePHO0iYISCNowaiiabDtMaN0N3q2uJE&rqlang=cn&rsv_enter=0&rsv_dl=tb&rsv_sug3=2&rsv_sug1=2&rsv_sug7=100&bs=%E5%A5%B3%E7%88%B7%E4%BB%AC'; location.replace(u); return; } /*alert('脚本开始!');*/ window.mbhjsq = { /*函数开始↓*/ modification: function () { mbhjsq.t_start = new Date().getTime(); /*重复修改不允许↓*/ if('rgb(255, 255, 255)' == String($('.nums_text').css('color'))) { return; } /*捕获↓*/ var bd = $('#content_left>*,#content_right>*'); /*不想要的结果↓*/ var b = /百聘|解梦|_好房365|_solarF阳光网|环球信息网|唯象娱乐网|运势/; for(var i = 0, l = bd.length; i < l; i++) { var bd_i = bd.eq(i); if(b.test(bd_i.text()) || bd_i.find('[data-tuiguang]').length > 0) { bd_i.remove(); continue; } /*替换文字↓*/ bd_i.html(function (x, y) { var newy = y.replace(/好看([^好看视频]*)视频/g, '难看$1视频').replace(/-完整版视频在线观看|.高清完整正版视频在线观看|是[\S\s]{2,6}高清视频./g, ''); if(newy !== y) { /*alert(newy);*/ return newy; } }); } /*修改结果数的字体↓*/ $('.nums_text').css({ color: '#ffffff', fontSize: '120%', fontWeight: 'bold', backgroundColor: '#000' }); /*修改热词字体↓*/ $('.opr-toplist1-table a').css({ fontSize: '80%' }); /*延时广告↓*/ setTimeout(function () { $('.c-container:has(.f13>span:contains(广告))').remove(); $('.ad-widget').css({ visibility: 'hidden' }); }, 2100); /*修改单条结果背景↓*/ $('.c-container,.cr-title,.opr-recommends-merge-img-titleline-height,.opr-toplist1-link').not('div:contains(其他人还在搜)').css({ backgroundColor: 'rgba(255,255,255,0.9)' }); /*链接当前窗口↓*/ $('a[href^="/"],a[href^="http"]').attr('target', '_self'); /*隐藏失效按钮和百度保障↓*/ $('.toplist-refresh-btn,.opr-recommends-merge-more-btn,.hint_right_middle').hide(); /*未予显示*/ if(!/百度热/.test($('#content_right').text())) { $('#content_left').prepend('<strong>根据相关法律法规和政策,部分搜索结果未予显示😐</strong>'); } $('#su').val(bd_i.jquery); if(mbhjsq.img_src === undefined) { mbhjsq.img_src = []; } if(mbhjsq.img_src.length === 0) { mbhjsq.img_src = ['https://dss1.bdstatic.com/kvoZeXSm1A5BphGlnYG/skin_zoom/117.jpg?2#百度首页绿地', 'https://dss2.bdstatic.com/kfoZeXSm1A5BphGlnYG/skin/209.jpg?2#百度首页杨幂']; } var random_num = Math.floor(Math.random() * mbhjsq.img_src.length); /*主背景图↓*/ var im = mbhjsq.img_src.splice(random_num, 1)[0]; $('#wrapper').css({ backgroundImage: 'url("' + im + '")' }); mbhjsq.t = new Date().getTime() - mbhjsq.t_start; document.title += ' ' + mbhjsq.t + 'ms'; }, img_src: [] }; /*↑函数(对象)结束,修改Logo↓*/ $('#result_logo').attr({ href: 'javascript:;', onmousedown: 'mbhjsq.modification(\'click_logo\')' }).html('<img src="https://wx3.sinaimg.cn/large/0087sbXcly1ghrdxh7uljj30b803ot8z.jpg">'); $('#wrapper').css({ backgroundAttachment: 'fixed', backgroundRepeat: 'repeat', backgroundSize: 'contain' }); /*注册ajax响应事件↓*/ $(document).ajaxSuccess(function (e, xhr, opt) { if(/\/s\?/.test(opt.url)) { /*alert('开始modification');*/ mbhjsq.modification('ajax'); } }); /*运行一次↓*/ mbhjsq.modification('start'); }; }
现有BUG、缺陷
脚本会导致右边的“展开”和“换一换”按钮点击没反应,原因不明,我排查了n久,无法解决,索性将它们隐藏,眼不见心为净。
脚本偶发无效,此情况请刷新网页(极少见)
“品牌广告”暂时无法剔除。
技术和版权问题
据我观察,百度搜索原生自带了jQuery库,是1.10版的,拿过来直接用即可,我看到有的脚本重新引入一遍jQuery库,我认为这完全没有必要。
借鉴了此作品↑
使用方法:Via浏览器:菜单→设置→脚本,点添加,粘贴进去。
配图来源喵魂↑
本代码本人自测月余,未发现重大明显BUG,有问题请留言反馈。
以上。
by名不好就受气 Fri Sep 15527649518:29:21 GMT+0800 (CST)
15527649518更新内容:
逻辑修改:捕获、遍历页面内容只遍历一次,相比之前的多次捕获遍历页面内容,大大加快执行速度;
增加了标题栏执行耗时显示;
隐藏“百度保障为您搜索护航”和“想在此推广您的商品吗”(有时候不太好使);
淡化“其他人还在搜”;
样式微调;
增加了手机版自动跳转电脑版(只限/s?开头)。