[油猴脚本开发指南]去除网页广告以及判断去除元素
# 简介本节课我们学习去除百度首页的广告,并且消除掉一些元素。
# 简易去除广告
首先我们找到下面的广告id是s_main
![图片.png](data/attachment/forum/202106/24/220658vhee55wwh5t0puh0.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "图片.png")
书写代码
```
GM_addStyle('#s_main{display:none !important}')
```
但是这个时候发现还存在滚轴,这个时候通常是因为有某些元素设置了最小高度导致的
我们可以直接选择元素点击一下,找到了
![图片.png](data/attachment/forum/202106/24/220722o483w0rdurr88uq0.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "图片.png")
将其设置为auto即为默认
```
GM_addStyle('#head{min-height:auto !important}')
```
我们接下来查看代码,发现虽然滚轴变成灰色的了,但是依然存在
![图片.png](data/attachment/forum/202106/24/220734he7e678eloedo68e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "图片.png")
这个时候可以排查是否一些上层元素存在scroll等css属性存在,经过排查,在html上找到了overflow-y,这个需要改为hidden才可以隐藏,具体某个值可以直接双击页面上的css属性进行更改。
![图片.png](data/attachment/forum/202106/24/220755effo4kz5gr4gdo4h.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "图片.png")
接下来我们就得到了一个相对干净的百度,这个输入框有点太靠上了,可以挪下去一点
![图片.png](data/attachment/forum/202106/24/220810fixq5spl0wllfgi4.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "图片.png")
我们通过元素选择找到了
![图片.png](data/attachment/forum/202106/24/221030uwjg2i0luly0feeu.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "图片.png")
修改height或者min-height都是可以的
再找到图标,将图标与按钮稍稍分离一点
![图片.png](data/attachment/forum/202106/24/221050joyx9xyazyya96ji.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "图片.png")
这个时候我们可以使用margin-bottom属性进行分割
书写代码
```
GM_addStyle('#lg{margin-bottom: 40px; !important}')
```
![图片.png](data/attachment/forum/202106/24/221121n7vj4jg7iv7tazpp.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "图片.png")
我们就得到了一个相对干净的百度了,接下来对左上角的元素进行清理
![图片.png](data/attachment/forum/202106/24/221151nzx0eyd8k2e6xx2x.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "图片.png")
我们查看元素可能发现class都是一致的,这个时候我们可以使用querySelectorAll获取全部的元素,然后循环元素数组,通过innerHTML判断我们想要删除那个(注意,返回的并非一个数组,而是一个节点列表,虽然与数组相似,但是不要对其进行删除等操作!)
document.querySelectorAll('.mnav')
然后使用for进行循环
![图片.png](data/attachment/forum/202106/24/220011anajaaiij000snaj.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "图片.png")
//执行流程:
首先运行第一个参数内语句,然后进入循环流程
对第二个参数进行判断,如果为真则执行{}内语句,执行结束后运行第三个参数内语句,并在此运行第二个参数语句进行判断是否进入执行流程,以此反复
我们可以书写代码
![图片.png](data/attachment/forum/202106/24/220018mvau2euged1ff7c6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "图片.png")
并且查看输出
![图片.png](data/attachment/forum/202106/24/220026ob0g3zmermpqg059.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "图片.png")
我个人比较喜欢贴吧和地图,所以对其他进行删除,可以对元素使用remove来删除元素
![图片.png](data/attachment/forum/202106/24/220051k50qd0yejaeooazq.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "图片.png")
接下来我们就得到了一个干净的百度
脚本地址https://bbs.tampermonkey.net.cn/forum.php?mod=viewthread&tid=689
![图片.png](data/attachment/forum/202106/24/220111r57bzbz59ozbwbzf.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "图片.png")
ad工具也可以 研究研究 {:4_111:}哈尔滨
太远了py不到 涛之雨 发表于 2021-8-26 08:50
哈尔滨
太远了py不到
疏忽了,忘了有地区
{:4_110:}不过我可以去py哥哥
我觉得哥哥比我强很多的! 本帖最后由 涛之雨 于 2021-8-26 21:26 编辑
李恒道 发表于 2021-8-26 09:08
疏忽了,忘了有地区
不过我可以去py哥哥
https://p.pstatp.com/origin/pgc-image/4dae9e5fad4f4c16a079ad2605c27f61
好多东西不会的。。。
现在在研究把自己代码扔到shadowroot,
不会和外界代码互相影响
主要vue(及其各种框架)css样式的注入效果简直太强了。。。
注入的网页全局样式遭殃。。。
iframe又不方便(而且iframe也做不出来一个半透明遮罩的效果)
所以只能考虑怎么把它扔到shadowroot里了
https://p.pstatp.com/origin/pgc-image/3ed00e117f7744b793bedd81072df1a8
vue的植入简直是噩梦
(不管是油猴脚本还是chrome插件的content_script)
涛之雨 发表于 2021-8-26 21:25
好多东西不会的。。。
现在在研究把自己代码扔到shadowroot,
不会和外界代码互相影响
{:4_86:}哥哥研究出来成果能论坛发一份让大家参观一下么
呜呜呜呜
我想看哥哥帅气的身影 李恒道 发表于 2021-8-26 22:24
哥哥研究出来成果能论坛发一份让大家参观一下么
呜呜呜呜
我想看哥哥帅气的身影 ...
https://p.pstatp.com/origin/pgc-image/03caf6d3f1054b618b69ddca85c143dd
不存在的了。。我已经好久没继续撸码了。。
vue这个css简直是毒瘤(而且我现在写的是chrome插件)
还没出生就胎死腹中了 本帖最后由 tongwudi45 于 2024-4-25 11:17 编辑
用up的这个思路想改一下学校网页显示比例和布局,
比如:一、一个页面分了六个区域,我想改六个区域的位置;
二、一个区域的有多个单选框,我想改他们的顺序和位置。请问我该看些什么来学习一下呢,up给我推荐的资料吧 谢谢了
tongwudi45 发表于 2024-4-25 10:29
用up的这个思路想改一下学校网页显示比例和布局,
比如:一、一个页面分了六个区域,我想改六个区域的位置 ...
这个可能比哥哥想得复杂
改变布局可能影响到原本的很多逻辑
一般情况下如果工作量不大更推荐重写了
页:
[1]
2