google提供的广告怎么关闭(屏蔽谷歌广告的软件怎么设置)
个人更喜欢用google进行搜索,然后抽空的时候可以看看百度热搜,来回切换总有点不方便,所以编写一个的油猴脚本,实现谷歌搜索去广告,然后右侧展示百度搜索结果和热搜,先看下使用前效果
![google提供的广告怎么关闭(屏蔽谷歌广告的软件怎么设置)插图1 google提供的广告怎么关闭(屏蔽谷歌广告的软件怎么设置)](https://www.qingyangmei.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
脚本运行后的效果
![google提供的广告怎么关闭(屏蔽谷歌广告的软件怎么设置)插图3 google提供的广告怎么关闭(屏蔽谷歌广告的软件怎么设置)](https://www.qingyangmei.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
api介绍
先放一个官方文档地址,下面介绍下这次用到的脚本Api
1 |
@match 脚本运行在哪个网页 |
例子:@match
https://www.google.com.hk/*
1 |
@grant 申请GM_*函数和unsafeWindow权限 |
例子:@grant GM_xmlhttpRequest 可以实现跨域请求,在访问谷歌页面的时候请求百度页面,然后将热搜缝合在右侧
1 |
@require 可以引用外部的js脚本 |
例子:@require
https://libs.baidu.com/jquery/2.1.4/jquery.min.js 引入jquery脚本
分析
谷歌搜索页
访问网页,按f12打开控制台,发现广告在id为taw的div下面
![google提供的广告怎么关闭(屏蔽谷歌广告的软件怎么设置)插图5 google提供的广告怎么关闭(屏蔽谷歌广告的软件怎么设置)](https://www.qingyangmei.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
右侧的内容在id为rhs的div下面,有时候不存在右侧内容,可以将热搜结果放在#rcnt下
![google提供的广告怎么关闭(屏蔽谷歌广告的软件怎么设置)插图7 google提供的广告怎么关闭(屏蔽谷歌广告的软件怎么设置)](https://www.qingyangmei.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
百度搜索页
右侧的热搜是放在class为toplist1-tr*的下面,网页其实是把30条热搜全部加载完成之后,点击切换通过控制css display: none; 来显示和隐藏。所以可以通过正则 /<div class=”toplist1-tr([\s\S])*?<\/div>/g 将他们全部取出来
![google提供的广告怎么关闭(屏蔽谷歌广告的软件怎么设置)插图9 google提供的广告怎么关闭(屏蔽谷歌广告的软件怎么设置)](https://www.qingyangmei.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
顺便也可以把搜索的结果展示在右侧,通过 /<h3 class=”c-title t t tts-title”>/g 来获取所有结果。匹配之后发现一个issue,百度自家的搜索结果没匹配上,正好这些结果没啥用。
![google提供的广告怎么关闭(屏蔽谷歌广告的软件怎么设置)插图11 google提供的广告怎么关闭(屏蔽谷歌广告的软件怎么设置)](https://www.qingyangmei.com/wp-content/themes/justnews/themer/assets/images/lazy.png)
核心代码
在页面加载完成后执行脚本,获取百度结果,然后拼接,开始以为点击搜索是异步请求,结果是前后端不分离的,整个页面刷新,所以每次搜素后都会执行这个脚本,就不用hook一些点击事件、请求、dom发生变化之类的东西,执行就ok。
去除谷歌广告
1 2 3 4 5 |
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">delGoogleAd</span>() </span>{ $(<span class="hljs-string">"#taw"</span>).remove(); $(<span class="hljs-string">"#bottomads"</span>).remove(); } |
获取百度搜索结果
1 2 3 4 5 6 7 8 |
<span class="hljs-selector-tag">GM_xmlhttpRequest</span>({ <span class="hljs-attribute">method</span>: <span class="hljs-string">"get"</span>, url: <span class="hljs-string">"https://www.baidu.com/s?wd="</span> + searchKey, onload: function (r) { console.<span class="hljs-built_in">log</span>(r); } }) |
完整代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 |
<span class="hljs-comment">// ==UserScript==</span> <span class="hljs-comment">// @name test</span> <span class="hljs-comment">// @namespace http://tampermonkey.net/</span> <span class="hljs-comment">// @version 0.1</span> <span class="hljs-comment">// @description try to take over the world!</span> <span class="hljs-comment">// @author You</span> <span class="hljs-comment">// @match https://www.google.com.hk/*</span> <span class="hljs-comment">// @grant GM_xmlhttpRequest</span> <span class="hljs-comment">// @require https://libs.baidu.com/jquery/2.1.4/jquery.min.js</span> <span class="hljs-comment">// ==/UserScript==</span> (<span class="hljs-function"><span class="hljs-keyword">function</span> () </span>{ <span class="hljs-string">"use strict"</span>; <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">delGoogleAd</span>() </span>{ $(<span class="hljs-string">"#taw"</span>).remove(); $(<span class="hljs-string">"#bottomads"</span>).remove(); } <span class="hljs-keyword">async</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">addBdResult</span>() </span>{ <span class="hljs-built_in">console</span>.log($(<span class="hljs-string">`#tsf input`</span>).value, $(<span class="hljs-string">`#tsf input.gLFyf.gsfi`</span>).val()); <span class="hljs-keyword">const</span> [str, hotRes] = <span class="hljs-keyword">await</span> getBdResult($(<span class="hljs-string">`#tsf input.gLFyf.gsfi`</span>).val()); <span class="hljs-comment">// 处理百度热搜</span> <span class="hljs-keyword">const</span> hotHtml = handleHot(hotRes); <span class="hljs-keyword">const</span> rhs = $(<span class="hljs-string">"#rhs"</span>); <span class="hljs-keyword">if</span> (rhs.length) { rhs.html(str).append(hotHtml); } <span class="hljs-keyword">else</span> { $(<span class="hljs-string">"#rcnt"</span>) .append(<span class="hljs-string">`<div id="rightBar" style="margin-left:20px;"><span class="hljs-subst">${str}</span></div>`</span>) .find(<span class="hljs-string">"#rightBar"</span>) .append(hotHtml); } } <span class="hljs-keyword">async</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">getBdResult</span>(<span class="hljs-params">searchKey</span>) </span>{ <span class="hljs-keyword">return</span> <span class="hljs-keyword">new</span> <span class="hljs-built_in">Promise</span>(<span class="hljs-function">(<span class="hljs-params">reslove, reject</span>) =></span> { GM_xmlhttpRequest({ <span class="hljs-attr">method</span>: <span class="hljs-string">"get"</span>, <span class="hljs-attr">url</span>: <span class="hljs-string">"https://www.baidu.com/s?wd="</span> + searchKey, <span class="hljs-attr">onload</span>: <span class="hljs-function"><span class="hljs-keyword">function</span> (<span class="hljs-params">r</span>) </span>{ <span class="hljs-keyword">if</span> (r.status === <span class="hljs-number">200</span> && r.readyState === <span class="hljs-number">4</span>) { <span class="hljs-comment">//解析搜索结果</span> <span class="hljs-keyword">let</span> resReg = <span class="hljs-regexp">/<h3 class="c-title t t tts-title">([\s\S])*?<\/h3>/g</span>; <span class="hljs-keyword">let</span> result = <span class="hljs-string">""</span>, temp; <span class="hljs-keyword">while</span> ((temp = resReg.exec(r.responseText)) != <span class="hljs-literal">null</span>) { result += temp[<span class="hljs-number">0</span>]; } <span class="hljs-comment">// console.log("result===>", result);</span> <span class="hljs-keyword">let</span> str = result .replace( <span class="hljs-regexp">/<h3 class="c-title t t tts-title">/g</span>, <span class="hljs-string">`<h4 style="margin: 6px 0;">`</span> ) .replace(<span class="hljs-regexp">/<\/h3>/g</span>, <span class="hljs-string">"</h4>"</span>); <span class="hljs-comment">// 解析百度热搜</span> <span class="hljs-keyword">let</span> hotReg = <span class="hljs-regexp">/<div class="toplist1-tr([\s\S])*?<\/div>/g</span>; <span class="hljs-keyword">let</span> hotRes = [], tempRes; <span class="hljs-keyword">while</span> ((tempRes = hotReg.exec(r.responseText)) != <span class="hljs-literal">null</span>) { <span class="hljs-comment">// console.log(tempRes);</span> hotRes.push( tempRes[<span class="hljs-number">0</span>].replace(<span class="hljs-string">`href="`</span>, <span class="hljs-string">`href="https://www.baidu.com`</span>) ); } reslove([str, hotRes]); } <span class="hljs-keyword">else</span> { reject(r.responseText); } }, }); }); } <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">handleHot</span>(<span class="hljs-params">hotRes = []</span>) </span>{ <span class="hljs-keyword">const</span> hotPage1 = hotRes.splice(<span class="hljs-number">0</span>, <span class="hljs-number">15</span>); <span class="hljs-keyword">const</span> hotPage2 = hotRes; <span class="hljs-keyword">let</span> toggleShow = <span class="hljs-literal">true</span>; <span class="hljs-keyword">return</span> $( <span class="hljs-string">`<div><div id="toggle" style="cursor: pointer; margin-bottom: 10px;">切换</div></div>`</span> ) .append(<span class="hljs-function"><span class="hljs-params">()</span> =></span> { <span class="hljs-keyword">return</span> $( <span class="hljs-string">`<div id="page1" style="display: <span class="hljs-subst">${toggleShow ? "none" : ""}</span>"><div/>`</span> ).append(hotPage2.join(<span class="hljs-string">""</span>)); }) .append(<span class="hljs-function"><span class="hljs-params">()</span> =></span> { <span class="hljs-keyword">return</span> $( <span class="hljs-string">`<div id="page2" style="display: <span class="hljs-subst">${toggleShow ? "" : "none"}</span>"><div/>`</span> ).append(hotPage1.join(<span class="hljs-string">""</span>)); }) .find(<span class="hljs-string">"#toggle"</span>) .on(<span class="hljs-string">"click"</span>, <span class="hljs-function"><span class="hljs-keyword">function</span> () </span>{ toggleShow = !toggleShow; <span class="hljs-built_in">console</span>.log($(<span class="hljs-keyword">this</span>).next()); $(<span class="hljs-keyword">this</span>) .next() .css(<span class="hljs-string">"display"</span>, toggleShow ? <span class="hljs-string">"none"</span> : <span class="hljs-string">""</span>) .next() .css(<span class="hljs-string">"display"</span>, toggleShow ? <span class="hljs-string">""</span> : <span class="hljs-string">"none"</span>); }) .end(); } <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">hookListener</span>() </span>{ <span class="hljs-keyword">let</span> oldadd = EventTarget.prototype.addEventListener; EventTarget.prototype.addEventListener = <span class="hljs-function"><span class="hljs-keyword">function</span> (<span class="hljs-params">...args</span>) </span>{ <span class="hljs-built_in">console</span>.log(<span class="hljs-string">"addEventListener"</span>, <span class="hljs-keyword">this</span>); oldadd.call(<span class="hljs-keyword">this</span>, ...args); }; } <span class="hljs-comment">// hookListener();</span> <span class="hljs-comment">// $(()=>{</span> <span class="hljs-comment">// })</span> delGoogleAd(); addBdResult(); })(); |
本文来自投稿,不代表本站立场,转载请注明:https://www.qingyangmei.com/99710.html
相关推荐
-
别把创业想得太复杂,简单的商业模式就是最好的
很多新手都有一个毛病,就是天天在网上寻找项目,别人说日赚300,月入一万,他就以为自己能够赚那么多钱,买下项目之后,发现套路很简单。其实买项目的目的,不是为了赚钱,而是满足他的好奇…
-
淘宝排名查询免费的有什么区别吗(淘宝类目查询工具有哪些)
淘宝店铺排名如何查询? 当淘宝店铺在经营的时候,及时了解到自己店铺的排名高低对于淘宝店铺而言也是有着非常重要的意义的,因为也只有这样一来,淘宝店铺也才嗯哪广告更加准确的了解到自己店…
2023年7月24日 -
如何推广自己的品牌?
网络营销的成功的关键是什么?我想不同的人心目当中会有不同的答案,其实你能够把自己的产品卖出去,得到客户消费者内心的认可,他就是成功的,很多人在网络上面都想创立自己的品牌,有些人是想…
-
亚马逊收款平台对比哪个好(个人做外贸如何收款手续费多少)
跨境电商亚马逊选择哪个第三方收款更好? 做跨境电商第三方收款时,选择哪家公司比较好? 近年来,我在亚马逊上使用了许多收款工具,但万里汇是我认为超过大多数收款工具的安全保障。零隐形收…
2023年7月26日 -
软文推广是什么意思(产品推广文案结构内容怎么写吸引人)
软文营销推广是什么?如何进行? 在互联网飞速发展的背景下,如今越来越多的企业开始重视网络营销,软文营销推广也被越来越多的人提及,那今天即传全媒就给大家讲一讲软文营销推广是什么?如何…
2023年7月28日 -
网络广告的形式有哪些举例说明(网络广告推广怎么做)
网络推广营销方式有哪些?营销秘籍!网络推广一招让你轻松登顶 随着互联网的普及,网络推广营销已经成为了企业获取市场份额的重要手段之一。在这个信息爆炸的时代,如何让自己的品牌脱颖而出,…
2023年7月20日 -
农贸市场做啥生意利润大些(农贸市场做生意要注意什么细节)
当下农村集市上,这几种生意挣快钱 现在网购已经成为一种社会非常普及的购物方式,这就导致了市场上的小生意都不好做,特别是在农村,许多人都是找不到挣钱的途径。其实,在当下是农村集市上,…
2023年8月8日 -
如何提高团队的凝聚力和执行力?
很多小伙伴都是非常的想创业,并且,有些人已经开始行动了,而且他不仅是自己行动还成立了自己的一个小团队,其实现在的这样的一个环境之下,如果说没有一个团队支撑你去创业的话,一个人可能是…
-
百度推广写创意需要alt贴标签(百度推广创意包含哪些内容)
图片SEO,为什么不能忽略图片ALT标签? 图片ALT标签对SEO具有一定的作用,但是经常被忽略。今天针对这个问题,和大家说说图片ALT标签的作用,以便大家在进行图片SEO的时候引…
2023年7月21日 -
拼多多搜索怎么开能引进巨大流量(拼多多产品seo优化如何提升点击率)
拼多多流量如何快速获取 拼多多这两年的发展真的是出人意料,这个平台仅仅花了短短几年时间就已经能够跟淘宝京东这两大电商平台并驾齐驱了,这也吸引了很多创业者把目光放在了它的身上。那么拼…
2023年7月19日
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 87833061@qq.com 举报,一经查实,本站将立刻删除。