阅读:1850回复:3
求助 百度贴吧广告过滤不掉
百度贴吧的贴子内容和贴子列表里都有广告,我观察了一下发现广告的特征是class里有一个10位的随机字符串。然后用如下油猴脚本过滤了贴子内容中的查楼广告:
var cs = document.getElementById('pb_content').getElementsByTagName('div'), i = 0; for (i=0; i<cs.length; i++) { if (cs[i].className.match(/clearfix/) && cs[i].className.match(/[a-z0-9]{10}/)) { cs[i].style.display = 'none'; } }但是同样的方法对贴子列表里的广告就不灵: var cs = document.getElementsByTagName('li'), i = 0; for (i=0; i<cs.length; i++) { cs[i].style.color = 'red'; if (cs[i].className.match(/clearfix/) && cs[i].className.match(/[a-z0-9]{10}/)) { cs[i].style.display = 'none'; } }比如 http://tieba.baidu.com/f?kw=%E5%8D%97%E6%B5%B7&frs=yqtb 这个页面上的“推广 风趣主播唯美清新”广告,巍然不动。我在for循环前加了一句 alert(cs.length)没想到不停地弹对话框,第一个是63,然后是0,然后又是63,又是0 似乎是百度页面调用了若干次油猴脚本?到此就束手无策了。大家能否给点提示啊建议啊什么的? |
|
|
1楼#
发布于:2015-11-21 00:21
更新easylist china规则至最新版,还不行的话 @cjx82630
|
|
2楼#
发布于:2015-11-21 11:18
1、贴吧的页面上有一堆iframe,每一个iframe都会触发脚本的执行。
2、很多内容是通过ajax加载的,加载的时间点在你脚本执行之后。你需要监听对应的事件 https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver |
|
3楼#
发布于:2015-11-21 13:37
taoww:1、贴吧的页面上有一堆iframe,每一个iframe都会触发脚本的执行。原来如此,多谢了。再去研究研究 |
|
|