google提供的广告怎么关闭(屏蔽谷歌广告的软件怎么设置)
个人更喜欢用google进行搜索,然后抽空的时候可以看看百度热搜,来回切换总有点不方便,所以编写一个的油猴脚本,实现谷歌搜索去广告,然后右侧展示百度搜索结果和热搜,先看下使用前效果
脚本运行后的效果
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下面
右侧的内容在id为rhs的div下面,有时候不存在右侧内容,可以将热搜结果放在#rcnt下
百度搜索页
右侧的热搜是放在class为toplist1-tr*的下面,网页其实是把30条热搜全部加载完成之后,点击切换通过控制css display: none; 来显示和隐藏。所以可以通过正则 /<div class=”toplist1-tr([\s\S])*?<\/div>/g 将他们全部取出来
顺便也可以把搜索的结果展示在右侧,通过 /<h3 class=”c-title t t tts-title”>/g 来获取所有结果。匹配之后发现一个issue,百度自家的搜索结果没匹配上,正好这些结果没啥用。
核心代码
在页面加载完成后执行脚本,获取百度结果,然后拼接,开始以为点击搜索是异步请求,结果是前后端不分离的,整个页面刷新,所以每次搜素后都会执行这个脚本,就不用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
相关推荐
-
淘宝指数下线了以后用什么看数据(淘宝搜索指数什么意思)
“淘宝指数”下线:跟不上淘宝天猫的节奏 科客点评:不知不觉,现在做生意都得用大数据了。 3月23日消息,从今天起,淘宝官方的免费数据分享平台“淘宝指数”正式下线。淘宝官方曾在1个月…
2023年7月19日 -
怎么增加网站的百度收录概率分类(网站如何被百度收录)
SEO实战:如何改善网站收录并提高收录数量 搜索引擎做为网站流量的重要来源,网站的收录量自然是大部分网站运营人员关心的问题。 先明确一些基本点,一个网页被收录与否,有两个因素: 是…
2023年7月19日 -
seo网站关键词优化途径有哪些(seo搜索引擎优化怎么做)
网站SEO优化快速提高排名的方法有哪些?这六种方法你知道多少 在当今数字时代,网站SEO优化已经成为每个网站运营商必须具备的技能。无论是小博客、大电商网站、新网站还是现有的老网站,…
2023年7月23日 -
微信怎么样卖东西给别人(朋友圈卖东西怎么发圈比较好)
社群营销6步法,让你商品卖到爆 当前,微信营销越来越火,对于卖家而言,懂得利用微信营销越来越重要。以前开一家门店,受众只是这片区域,现在你开一家门店,你可以通过微信把东西卖往整个朋…
2023年8月6日 -
网页安全证书过期了怎么办?
现在的网络平台,对于安全性的要求是非常的高的,并且确实也是有实力,有能力做到保障用户的安全。 不管大大小小的网站,他们对于安全性方面是非常的看重的,而现在的一些软件一些工具他们安全…
-
闲鱼无货源还能做吗,该怎么做?
对于闲鱼这个平台,我想大家都非常的熟悉吧,很多人也想在上面分一杯羹,把自己不用的东西拿到上面交易。现在网络当中闲鱼无货源,这种玩法已经是非常的成熟了,但是很多人刚开始接触的时候,没…
-
在淘宝网上开店要多少钱投资(新手淘宝开店卖什么比较好起步快)
【淘宝新手开店】个人淘宝开店需要什么条件和手续及费用明细 一、开店条件: 1.年满18周岁。 2.具有中国公民身份或具有中国合法居留权。 3.具有完全民事行为能力。 淘宝新手开店 …
2023年7月26日 -
童装店需要多少钱能开起来(开童装店流程步骤新手怎么入手)
开一间童装小店要花多少钱,装修要花多久?#童装创业 开设一家童装店需要多少资金?装修需要多长时间? 今天,我将为大家分享开设一家童装店所需的资金和装修时间。我的童装店位于小区附近,…
2023年8月8日 -
现在种什么树最有前景,种什么树经济价值高
很多人在做生意的时候,往往会考虑前景,这个东西毕竟的话我们要做一件事情是需要一定的时间积累的,如果说当我们经过几年做出来的这个事情,然后已经过了他的那个时代,那么基本上我们这几年的…
-
什么叫营销渠道(营销渠道的功能和流程包括哪些)
如何在竞争激烈的市场中脱颖而出?创业公司营销渠道选择建议 头条笔记:营销渠道选择建议 培训对象:创业公司 创业公司的成功与否往往取决于其营销策略和渠道的选择。在这篇头条笔记中,我们…
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 87833061@qq.com 举报,一经查实,本站将立刻删除。