本帖最后由 wushaominkk 于 2021-1-12 10:55 编辑

快过年了,准备刷一波剧,发现以前写的

【Android】利用爬虫将电影网站打包成一个APP(8.26更新)

这个已经失效了,准备再搞一波.这次不写界面了太麻烦,直接用webView嵌套网页.

嵌套进去发现广告贼特多,各种悬浮页面根本无法用.在浏览器上输入网址按F12调整手机模式

1610417623(1).jpg (97.53 KB, 下载次数: 0)

2021-1-12 10:17 上传

各种恶心的广告就弹出来了,在网页上找到下面广告的标签

1610417965(1).jpg (53.33 KB, 下载次数: 0)

2021-1-12 10:22 上传

[Java] 纯文本查看 复制代码webView.setWebViewClient(new WebViewClient() {

@Override

public WebResourceResponse shouldInterceptRequest(WebView webView, String url) {

//判断是否是广告相关的资源链接

if (!AdFilterTool.isAd(context, url)) {

//这里是不做处理的数据

return super.shouldInterceptRequest(webView, url);

} else {

//有广告的请求数据,我们直接返回空数据,注:不能直接返回null

return new WebResourceResponse(null, null, null);

}

}

[Java] 纯文本查看 复制代码public class AdFilterTool {

public static boolean isAd(Context context, String url) {

Resources res = context.getResources();

String[] filterUrls = res.getStringArray(R.array.adUrls);

for (String adUrl : filterUrls ) {

if (url.contains(adUrl)) {

return true;

}

}

return false;

}

public static String getClearAdDivJs(Context context){

String js = "javascript:";

Resources res = context.getResources();

String[] adDivs = res.getStringArray(R.array.adBlockDiv);

for(int i=0;i

js += "var adDiv"+i+"= document.getElementById('"+adDivs[i]+"');if(adDiv"+i+" != null)adDiv"+i+".parentNode.removeChild(adDiv"+i+");";

}

return js;

}

}

重写shouldInterceptRequest方法过滤链接

image.png (51.13 KB, 下载次数: 0)

2021-1-12 10:26 上传

刚开始我是简单粗暴把.gif给过滤掉,发现图片是没有了但是便签还在,你点击还是会弹到广告页面

第二步骤 动态加载js移除网页广告的标签

重写onPageFinished方法,当页面加载完注入js代码移除标签

[Java] 纯文本查看 复制代码@Override

public void onPageFinished(WebView view, String url) {

super.onPageFinished(view, url);

Log.i("Finished:", url);

String js = AdFilterTool.getClearAdDivJs(context);

Log.v("adJs",js);

view.loadUrl(js);

}

只要找到广告标签的ID就可以移除,测试后发现这个网站还是挺流氓的,广告的标签是动态加载的,每次加载的ID是不一样的.改方法不可行

第三步 调试NetWork看到底加载那些流氓的代码,这不叫费时间,只能一个个找了

发现一个很奇怪的文件130798,点击看看有段 var c = 'abcdefhijkmnprstwxyzABCDEFGHIJKLMNOPQRSTWXYZ';这个代码

以经验来看,这个极有可能是,

1610419003(1).jpg (59.93 KB, 下载次数: 0)

2021-1-12 10:38 上传

我们来搜索下那个广告的标签video,找到了

vs.innerHTML += `video[${vn}]{background-size:100% 100%;background-image:url(${param.a_3});position: fixed;left: 0;${param.c_5}:${param.o}px;z-index:2147483647;height: ${param.d_2}px;width: 100vw;object-fit:fill}`;

就是他没错了,动态加载的标签

1610417096(1).jpg (40.46 KB, 下载次数: 0)

2021-1-12 10:36 上传

我们再看看这个文件请求头

1610419332(1).jpg (26.81 KB, 下载次数: 0)

2021-1-12 10:43 上传

找到这个链接直接在第一步给他屏蔽了,这样他就不会动态加载标签了

按照这个方法把其他的部位的广告都给屏蔽掉

最后放一张效果图

e77a216392e12ce6d48aa943e50542d.jpg (212.4 KB, 下载次数: 0)

2021-1-12 10:48 上传

android webview 广告过滤,使用webView屏蔽广告(实操版)相关推荐

  1. 【笔记】小米电视屏蔽广告好评,亲测方法及相关设备参数

    微信关注公众号 "DLGG创客DIY" 设为"星标",重磅干货,第一时间送达. 这个小米电视,买了有几年了,型号我记得是4(找不到购买记录了).给父母用,所以联 ...

  2. 世界之窗浏览器6 Adblock 广告过滤

    世界之窗浏览器6 在 2013年7月31日更新了 6.0.0.146,其中加入了广告过滤功能. 其中广告过滤分为 4 挡,第一档是不过滤广告,第二档是只过滤弹窗广告,第三档是过滤影响用户体验的广告,第 ...

  3. IMX6之openwrt使用dnsmasq实现广告过滤

    路由器使用dnsmasq实现广告过滤 简介 路由器上广告过滤可以通过dnsmasq配置实现,dnsmasq是路由器的DNS域名缓存与DHCP服务器二合一,通过DNS域名重定向把广告的地址重定向即可实现 ...

  4. Android webview广告过滤的实现

    WebViewClient的几个回调函数(本文章转自  某某某  ) 要想对Webview实现一些高级操作,首先要学习WebViewClient的用法,这是Webview几个常用回调函数 1.publ ...

  5. 安卓网页广告拦截_Android webview广告过滤的实现

    现在大部分的android平台的浏览器都具有广告过滤的功能,同时大部分网站都有广告.广告行业是个盈利巨大的产业,就我看来,现在绝大部分的互联网产品,一般有两种营利模式:免费有广告和会员无广告:他们大部 ...

  6. android广告拦截原理,WebView 广告拦截浅析

    前言 查豆瓣 使用的是 WebView 加载页面,在豆瓣的移动页面中存在两到三个的广告轮播图,比较影响阅读体验.所以开始着手看看怎么屏蔽掉广告. 在 WebView 中有以下三个方法可以考虑: fun ...

  7. Android 应用广告过滤几种方式

    code小生,一个专注 Android 领域的技术平台 公众号回复 Android 加入我的安卓技术群 作者:Dotry链接:https://www.jianshu.com/p/cd1aeed9e3b ...

  8. Android应用广告过滤几种方式

    前言 说起网页广告,那真是让人又恨又爱,它们不但占用了网页的可视控件,分散用户的注意力,还有些浮动广告干扰甚至误导用户操作.但是广告又是开发者重要的收入来源之一,同样作为一名开发者,还是挺能理解的.比 ...

  9. app开屏广告实现——借助webview和原生fetch请求实现

    app开屏广告实现1 全局加载,仅app打开时弹出,借助webview和原生fetch请求实现. app.vue的onLaunch生命周期,在整个app运行期间,仅会执行一次,所以广告就达到了只有打开 ...

  10. Android桌面老是跳广告,电脑桌面老是弹出广告怎么办?简单3步轻松屏蔽!

    原标题:电脑桌面老是弹出广告怎么办?简单3步轻松屏蔽! 作者:寻老师 来源:精品资源每日推荐(id:jpzymrtj) 通常我们上班的第一件事就是打开电脑,然后烦人的小广告也跟着启动了.当你正浏览新闻 ...

最新文章

  1. 华为存储iscsi配置_网络+存储+虚拟化:三大要素构建新网络
  2. java OpenCV 图片清晰度、色偏和亮度检测
  3. r语言t检验输出检验统计量_数据统计的理解和运用(四)列联表之卡方检验
  4. containerd安装及常用命令
  5. 腾讯物联网操作系统正式开源,最小体积仅1.8 KB
  6. python 使用requests模块进行 视频文件的下载
  7. java 新浪短网址生成器,新浪短链接接口被限制?最新新浪短网址api接口
  8. mysql 5.6 ddl 锁表_MySQL数据库之MySQL5.6 Online DDL 是否锁表、rebuild表、inplace的说明...
  9. phpstrom 安装
  10. GraphLab:新的面向机器学习的并行框架
  11. ESXi配置vCenter服务器
  12. 【不积跬步,无以致千里】DELETE SINGLE IPTABLES RULES
  13. 另类方法激活你的Winodws 2008
  14. Matlab系列教程_基础知识_运算符
  15. Iconfont阿里矢量图库结合css3属性font-face的使用
  16. 数字乡村大数据可视化平台建设方案 智慧乡村 美丽乡村 智慧农村
  17. C#实现压缩文件及解压文件
  18. SSM | Spring
  19. 通过银联跨行转账、转接的交易手续费用——2358原则
  20. Dynamics CRM 数据导出到Excel时列标题不能重复

热门文章

  1. 招商银行软件开发笔试知识汇总
  2. scl语言用plc脉冲做定时器_scl语言用plc脉冲做定时器_西门子PLC SCL语言开发学习笔记(二)...
  3. 家用计算机常见故障及解决方式,计算机常见故障及解决方法
  4. 手机版服务器最新的,我的世界手机版服务器ip地址大全(持续更新)
  5. 一阶线性微分方程 解法
  6. 什么是商业智能(BI),就看这篇文章足够了
  7. 广州十日 --2006/3/18
  8. shell粘贴复制快捷键
  9. Excel进阶(2)
  10. cs1.5小地图如何加机器人 电脑人 POD2.5