Board logo

标题: [TheWorld 3] 过滤扩展进阶应用笔记(2009.12.28 更新) [打印本页]

作者: elkay    时间: 2009-12-2 14:42     标题: 过滤扩展进阶应用笔记(2009.12.28 更新)

这个帖子本来就准备写的,前几天没能定下心来,就拖了几天

广告过滤功能,其实不仅仅是为了过滤广告,更重要的是为了改善我们的网页浏览体验,所以,过滤功能所能做到的也不仅仅是过滤广告,还有其他很多很多东西,这个需要大家慢慢发掘

这个帖子可以看做是教程贴的延续,在教程贴中我已经介绍了tw3过滤的最基本用法,以及tw3过滤规则里所有的参数,因为教程贴比较简单,很多参数都没有用上,所以才有了这个帖子,这个帖子的内容也只是对教程贴的补充,所以,对于已经掌握了教程贴的朋友,就可以更加深入的了解tw3的过滤,由于内容较多较杂,所以我会不定期的更新不同的内容。

_________________________________________________________________________________________

第一节:多重过滤
多重过滤是tw3的最大特色之一,有了多重过滤,使tw3的过滤相对于tw2来说有了质的飞跃

相信大家在教程贴里看到过多重过滤字样,但是在那个帖子里却没有任何说明,主要是因为基本的过滤应用对多重过滤的需求不是太大。作为进阶应用的第一节,我就给大家介绍一下多重过滤;
多重过滤,实际上对这个功能最直白的描述应该是多重匹配;在教程贴里,我用实例介绍了如果过滤掉页面中指定的区域,而在实际情况下,有些时候我们会遇到想要过滤的区域并不是唯一,或者没有很明显的标示,这个时候多重过滤就派上用场了,我们可以利用多重匹配功能,来准确定位我们想要过滤的内容,下面我举个例子;

本版昨天有位朋友发了个帖子,要过滤论坛签名,尤其是要过滤带图片的签名,我就拿这个做个列子介绍一下如何只过滤带图片的签名,而不过滤只有文字的签名

首先,我们看一下论坛签名部分的代码(这里以Discuz! 7为例)
  1. <div class="signatures" style="">
  2. <table cellpadding="0" cellspacing="0">
  3. <tbody><tr>
  4. <td>签名内容</td>
  5. </tr>
  6. </tbody></table>
  7. </div>
复制代码
我们可以看到,不管签名里是文字还是图片,代码都是这样的,不同的是签名内容部分,文字或者是图片,或者两者皆有
按照教程贴里的方法,我们很容易就能过滤整个签名部分,不区分文字还是图片,只要过滤掉属性为class="signatures"的div即可

但是那位朋友的理想目标是只过滤带有图片的签名,于是,我们看一下带有图片的签名代码
  1. <div class="signatures" style="">
  2. <table cellpadding="0" cellspacing="0">
  3. <tbody><tr>
  4. <td><img src=图片地址></td>
  5. </tr>
  6. </tbody></table>
  7. </div>
复制代码
很明显,有图片的签名代码中含有<img src=图片地址>这样的内容,于是我们知道,只要过滤带有<img src=图片地址>内容的属性为class="signatures"的div就能实现过滤掉带有图片的签名
这个时候就可以利用多重过滤的多层匹配功能,第一层我们匹配属性为class="signatures"的div标签,然后在这个基础上我们继续匹配含有<img src=图片地址>内容的标签,将它过滤掉
我们可以得出这样的规则(规则中所使用的方式跟教程贴有所不同,具体参数请参考教程贴一楼的文档说明):
  1. <pattern type="1">
  2.                                 <targets>
  3.                                         <param>
  4.                                                 <![CDATA[div]]>
  5.                                         </param>
  6.                                         <paramex>
  7.                                                 <![CDATA[signatures]]>
  8.                                         </paramex>
  9.                                 </targets>
  10.                                 <pattern type="3">
  11.                                         <targets>
  12.                                                 <param>
  13.                                                         <![CDATA[<img]]>
  14.                                                 </param>
  15.                                                 <replace>
  16.                                                         <![CDATA[<!--signatures with image-->]]>
  17.                                                 </replace>
  18.                                         </targets>
  19.                                 </pattern>
  20.                         </pattern>
复制代码
将这个规则加入相应的对应url地址,导入后我们访问相应url的Discuz! 7论坛的时候就会看到带有图片的签名档被过滤掉了,只留下带有文字的签名档

小结:多重过滤理论上是可以无限匹配,如果遇到2层匹配都无法确定的情况下可以增加第三层,直到准确定位到自己想要过滤的内容
~~~~~~~~~~
外篇 1
上面介绍了如何利用多重过滤来过滤包含图片的签名档,虽然已经达到目的,但是为了更好的浏览体验,我们是不是可以只过滤签名档中的图片,而保留签名档中的其他内容呢?这样做应该是最完善的方法,结论是肯定可以的,我首先提供一个可行的方法思路,tw3的过滤扩展相比tw2除了多重过滤以外,还有个很大的改进是正则引擎,对正则表达式有一定了解的朋友可以利用positive lookbehind准确定位到只在签名档中的图片代码,将这个图片代码过滤就完成了对签名档图片部分的过滤,而不会过滤掉其他内容,如果签名档中同时包含文字和图片,文字依然会保留,而图片会被过滤

~~~~~以上内容写于 2009.12.02~~~~~


作者: elkay    时间: 2009-12-2 14:46

第二节:反向匹配
反向匹配也是tw3过滤扩展一个非常重要的特色,据我说知,能提供反向匹配的过滤软件很少,因为有了反向匹配,tw3过滤扩展的适用性也大大增强

反向匹配的参数是 reverse,在教程贴一楼的文档里也简单介绍了参数,但是没有详细的用法,这一节就对反向匹配做个简单的介绍;
首先,反向匹配从名字上就能知道是什么意思,就是说针对我们在过滤规则中匹配到的内容取反,也许有人不理解这么做有什么意义,下面简单介绍一下,通过教程贴和第一节多重过滤的介绍,相信大家已经基本知道过滤扩展的使用方法和过滤规则的基本写法,其中最关键的就是准确匹配到我们需要过滤的内容,教程贴中是最简单的匹配方式;而第一节多重过滤介绍了如何在比较复杂的情况下利用多层匹配的方式准确定位到我们需要过滤的内容,然而现实中还有更加复杂的,比如说相似性实在太多,导致要使用更多层的匹配才能定位,又或者我们要过滤的内容根本没有唯一性,这个时候我们就可以利用反向匹配了。

首先要做的是转变思维方式,我们之前一直思考如何匹配到我们想要过滤的内容,然而如果实在找不到想要过滤的内容的匹配关键词的时候,很多人就会觉得无从下手,其实这个时候转变一下我们可以去找我们不需要过滤需要保留在页面中的内容呢?一般情况下,网页的正文都会有固定的格式,也就是说我们找不需要过滤的比找需要过滤的内容来的简单方便,针对不需要过滤的内容编写规则,然后利用反向匹配,将匹配到的不需要过滤的内容取反,结果就是我们需要过滤的内容,举个简单的例子,还是以第一节中过滤签名档的例子,第一节我们是要过滤带有图片的签名档,那假如我们是要过滤只有文字不带图片的签名档呢?利用反向匹配,将第一节中匹配带图片的签名档的规则取反就能达到这个目的,加上反向匹配的规则如下:
  1. <pattern type="1">
  2.         <targets>
  3.                 <param>
  4.                         <![CDATA[div]]>
  5.                 </param>
  6.                 <paramex>
  7.                 <![CDATA[signatures]]>
  8.                 </paramex>
  9.         </targets>
  10.         <pattern type="3">
  11.                 <targets>
  12.                         <param>
  13.                                 <![CDATA[<img]]>
  14.                         </param>
  15.                         <reverse>
  16.                                 <![CDATA[1]]>
  17.                         </reverse>
  18.                         <replace>
  19.                         <![CDATA[<!--signatures without image-->]]>
  20.                         </replace>
  21.                 </targets>
  22.         </pattern>
  23. </pattern>
复制代码
将规则加入对应url的domain节导入,访问相应url的Discuz! 7论坛就会看到,没有图片的签名档被过滤了,留下了带有图片的签名档

小结:反向匹配提供了另外一种过滤指定内容的思路,可以说是针对过滤的逆向思维,两种方式的混合对过滤页面内容有着很大的用处
~~~~~~~~~~
外篇 2
反向匹配的用处有很多,我给大家提供一个方向,现在页面中的flash内容越来越多,同时网络视频也是基于flash,有些时候我们只需要看视频而不想看到其他flash内容,这个时候就可以利用反向匹配,找到视频内容比找到其他flash要简单的多,而且视频内容的时效性要大于其他flash比如广告,只要针对视频内容取反,我们就可以完成对视频页面上非视频flash内容的过滤

~~~~~以上内容写于 2009.12.03~~~~~


作者: elkay    时间: 2009-12-2 14:47

第三节:变量
变量是个很有用的功能,教程贴一楼的文档中介绍了变量的使用方法,replacevar可以将匹配到的内容输出到一个变量,replace则可以引用变量;变量在整个rule中都有效,rule中的任意一条规则都可以引用

这一节我稍微介绍一下变量在过滤广告时候的作用,变量对于很多人来说相对比较陌生,所以后面我会用图片说明;
首先我们先回顾一下过滤页面广告,在过滤很多网页的时候会发现广告是去掉了,但是页面上却留下了大大小小的空白,很是难看,大多数时候我们可以通过过滤掉空白处的内容去掉这个空白,但是有些时候却无法做到,这个跟html本身有关系,大多数的网页中内容都是固定位置的,即使你过滤掉页面中某一部分内容,下面部分的内容也不能自动填补上来,具体原因这里就不说了,大家只要知道并不是说过滤掉广告之后广告部分的空白就一定会自动消失的就可以了;

下面我们用一个简单的例子来说明一下遇到这种无法过滤掉的空白的时候变量的作用,请结合图片和注释一起看
示例网址是泡泡网首页(www.pcpop.com)
首先看一下第一幅图片:
泡泡网 1.png

图片中我做了简单的注释,“空白”就是我们在过滤掉广告以后留下的大片空白,一般情况下我们没有办法单独过滤掉这一片空白,除非连最右边的“变量”框框里的内容一起过滤;
但是“变量”框框中的不是广告,是正常的页面内容,虽然并不一定有多大用处,但是从最佳浏览体验上来说我们应该尽量保证留下页面中正常的内容,所以我们就可以把这个部分先输出到一个变量,然后再连同空白处把整个部分过滤掉。
我们输出的“变量”会在后面引用使得这部分内容重新出现在页面上,不同的是换了个地方,“目标”就是我们可以找到的一个引用这个变量的地方,因为这里正好是一片空白,大小也正合适我们先前输出的变量中的内容。这样我们就有了完整的输出变量并且引用的一个过程。

我们先来看成果的图片
泡泡网 2.png

我们的“变量”已经到了“目标”位置,而顶部的空白也没有了,显然这样的页面要比我们仅仅过滤掉广告以后的页面要整齐的多。
有兴趣的朋友可以去下载我的泡泡网过滤规则参考示例中变量的使用方法

小结:变量不仅仅是用来过滤广告,更多的是改善我们的浏览体验;另外,善用变量还可以做很多其他的事情
~~~~~~~~~~
外篇 3
对正则表达式有一定了解的朋友会发现,变量跟正则表达式中的捕获很相似,只是变量要比正则捕获更加容易使用;
另外,目前的tw3过滤扩展是不支持正则表达式的捕获功能的,这样一来可能有一个问题,那就是假如我们在某些时候只需要引用匹配到的内容中的一部分而不是全部内容,这个时候好像变量就无法满足了,这里提供一个变通的方法:利用正则表达式的positive lookahead、positive lookbehind等功能可以让变量只输出匹配到的内容中的一部分而非全部内容

~~~~~以上内容写于 2009.12.04 | 未完待续~~~~~



图片附件: 泡泡网 1.png (2009-12-4 14:42, 182.28 KB) / 下载次数 3064
http://bbs.theworld.cn/attachment.php?aid=86811&k=f992ab4a1e23ebb02e1a75ea266a3899&t=1732299524&sid=qlruxq



图片附件: 泡泡网 2.png (2009-12-4 14:42, 199.61 KB) / 下载次数 3111
http://bbs.theworld.cn/attachment.php?aid=86812&k=f2240e74aa2242cfdbb53bc7623bcc19&t=1732299524&sid=qlruxq


作者: elkay    时间: 2009-12-2 14:48

附录 1 :过滤真的那么难么?

自从过滤扩展发布以来,自己尝试写规则的朋友越来越多了,最近有几个朋友问我,为什么按照教程贴里的方式无法过滤,或者找不到教程贴里的内容,后来我去看了他们要过滤的网站,其实是可以过滤的,问题就在于这些网站跟教程贴提供的不一样,这里我就稍微说一下过滤需要注意的问题

现在很多网站的页面都是DIV+CSS的,而教程贴里用的示例就是本论坛,也是这样,只要找到需要过滤的内容对应的div即可,问题是还有其他的广告并不是在div里的,有的是javascript脚本,有的是图片,这些都不能用div来搜索,需要换成对应的tag,比如script等等,而教程贴里提供的只是一个简单的示例,并不是一个固定的格式,不是说所有的网站都可以套用这个就能完成的,网站页面变化多端,不同的页面要用不同的方法,但是基本步骤都一样的,教程贴里提供的示例也就是给大家参考的一个基本步骤,在遇到其他情况下需要融会贯通。

tw3的过滤规则相比tw2简单,简单在不需要正则表达式基础,但是依然需要html语法基础,因为必须要清楚的知道需要过滤的内容在哪里才能在规则里写出来,好在html不需要怎么学习,多看几个页面源代码就能了解的差不多了,很多人会产生一个误解,有html基础并不是说你要非常了解或者说能自由运用,过滤功能所要求的html基础仅仅是要求对html有最基本的了解就可以了,所以不要被这些繁琐的语法吓倒,因为我们要做的不是写一个网站,而仅仅是过滤某个页面上的一小段内容而已。而过滤规则本身所使用的xml直接忽略就可以了,写规则的时候复制现成的参数拼接一下就行了。


小结:
1. 过滤不在乎你的知识多么丰富(什么正则表达式啊,html语法啊,这些都无所谓),在乎的是你的想法,只要你想到了方法就完成了过滤的绝大部分,因为这些知识都是死的,需要用的时候再去查也来得及
2. 千万不要被复杂html和xml语法吓倒,因为我们不需要非常熟悉这些,只要稍微了解就可以了,就向上面说的,需要用的时候再去查也来得及,毕竟都是死的

~~~~~以上内容写于 2009.12.28 | 未完待续~~~~~


作者: elkay    时间: 2009-12-2 14:48

预留
作者: 早安晨光    时间: 2009-12-2 15:34

本帖最后由 早安晨光 于 2009-12-2 15:41 编辑

管理员大大写教程辛苦,但像我等小白理解能力都很差,以后大大可以尝试以图文并茂的方式来写教程虽然麻烦点但更直观便于理解。

unamed1259738262.jpg

图片附件: unamed1259738262.jpg (2009-12-2 15:41, 59.59 KB) / 下载次数 3260
http://bbs.theworld.cn/attachment.php?aid=86666&k=81e206c66fcd0f3169ad52a7b4974296&t=1732299524&sid=qlruxq


作者: elkay    时间: 2009-12-2 15:41

6# 早安晨光


呵呵,其实不难理解,你可以一边看着文档一边看这个,对照着看就能加深理解效果了,如果只按照图片来写,大家还是不熟悉这些参数啊,我的目的是让大家对这些参数都有一定的了解,用的时候就方便了
作者: 904055262    时间: 2009-12-2 21:36

不错 如果 这些XML代码 不要用户去写的话 就好多了  跟adblock plus一样
只要有特定的前缀告诉软件就行了
比如@ @ 表示白名单
       ## 表示隐藏元素
      /   / 双斜杠之间表示套用正则...
作者: 904055262    时间: 2009-12-2 21:38

我想知道 为什么要写成这个样子
DIV[id="ad_"]
这样一句 不行么?
为什么前面要那么多  漏了一个关闭标签 不就挂了....
作者: elkay    时间: 2009-12-2 22:03

adblock有他的优点,但是同样缺点也很明显,adblock从功能性上来说连tw2都比不上,何况现在的tw3呢?

有人说规则的编写比较复杂,其实这个是观看角度的问题,就拿教程贴中的例子,那么长一段代码中用户仅仅只需要修改其中的很少的一部分。在大多数情况下,用户只要复制粘贴就能完成规则编写的大部分工作,剩下的只是修改其中很少的一部分字符串而已

最后我想说的是,广告过滤的易用性是指规则使用上的便捷,而不是规则编写上的便捷,很多人推崇mt的过滤,难道mt的过滤包会比tw3的规则简单么?
作者: clock    时间: 2009-12-2 22:12

有时间一定得认真学习才行了
作者: smile16888    时间: 2009-12-2 22:40

先去研究下怎么利用positive lookbehind准确定位到只在签名档中的图片代码
期待E版的续
作者: 904055262    时间: 2009-12-2 22:52

adblock有他的优点,但是同样缺点也很明显,adblock从功能性上来说连tw2都比不上,何况现在的tw3呢?

有人说规则的编写比较复杂,其实这个是观看角度的问题,就拿教程贴中的例子,那么长一段代码中用户仅仅只需要 ...
elkay 发表于 2009-12-2 22:03 http://bbs.ioage.com/cn/images/common/back.gif


我不知道Adblock的功能缺什么功能 起码我要的全部有了

! 我不知道TW2是个什么形状,我也不用遨游!
我不太用 TW的 主要用的是OP,TW3也是当当IE的"内核"而已 比IE用的都少 不过我挺喜欢TW! 所以我才费时间的打这么长的一段话!

我只是想  那些我们根本不用改的 交给软件自己就好了 我们只要写出关键的 正如你说的改关键的就可以了!...我想这样读起来什么的 看起来的也舒服多了!

软件是做给大多数人的  易用性我觉得很重要  很多时候用户 只是想过滤这个广告
而你告诉他 要复制一大段的代码 然后改掉关键的地方???

不过就广告的功能性上来说  比op的URL过滤来的好多了 不过OP有CSS可以随便的蹂躏广告!不过不太好管理!
作者: 早安晨光    时间: 2009-12-2 23:53

本帖最后由 早安晨光 于 2009-12-3 00:25 编辑

TW3广告过滤规则效率很高,虽然我基本不会用但我还是挺支持的。

我觉得下面这段代码就是其精华所在,关键是:

<pattern type="1">
          <targets>
            <param>
              <![CDATA[a]]>
            </param>
          </targets>
          <pattern type="2">
              <targets>
                <param>
                  <![CDATA[如何判断和书写要过滤的广告信息?]]>
                </param>
                <replace>
                  <![CDATA[<!--AD Blocked By TheWorld 3-->]]>
                </replace>
              </targets>
          </pattern>
      </pattern>
作者: SpeedDrift    时间: 2009-12-3 11:34

我不知道Adblock的功能缺什么功能 起码我要的全部有了

! 我不知道TW2是个什么形状,我也不用遨游!
我不太用 TW的 主要用的是OP,TW3也是当当IE的"内核"而已 比IE用的都少 不过我挺喜欢TW! 所以我才费时间的打 ...
904055262 发表于 2009-12-2 22:52 http://bbs.ioage.com/cn/images/common/back.gif
非常支持!但是开发这样一款智能的插件似乎需要花费比较多的精力,短时间内是不可能出现的。
作者: 早安晨光    时间: 2009-12-3 15:43

看了第二节教程不错很容易理解。

我现在只能屏蔽一些简单的图片和在我能力范围内查得到出处的FLASH。就拿这次屏蔽签名图片来说吧,之前没有你告诉我class="signatures"的话我根本就不知道如何下手。
作者: jym2005    时间: 2009-12-3 15:47

提示: 作者被禁止或删除 内容自动屏蔽
作者: 早安晨光    时间: 2009-12-3 16:07

17# jym2005

好吧举个例子,关于小熊在线http://www.beareyes.com.cn/我想屏蔽顶部划叉的那一栏,虽然我已屏蔽掉了相关图片可我怎么也找不到关于那一栏的相关信息。

unamed1259757679.jpg

图片附件: unamed1259757679.jpg (2009-12-3 16:06, 135.59 KB) / 下载次数 3167
http://bbs.theworld.cn/attachment.php?aid=86727&k=c3ccd38c243f34f4d57fd6d7386e2b1c&t=1732299524&sid=qlruxq


作者: elkay    时间: 2009-12-3 16:09

第一次都是这样,不知道如何下手,相信有了第一次成功的经验,现在一般的内容过滤应该都能搞定了。


其实很容易找的,你看到什么就在源码里搜索什么,比如你这个网站,你在源码里搜索"智能钻石侠"即可,上面几行就能看到<div class=字样,但是又好几个具体是哪一个你可以自己试一下,试过几次以后你就有经验了
作者: jym2005    时间: 2009-12-3 16:17

提示: 作者被禁止或删除 内容自动屏蔽
作者: 早安晨光    时间: 2009-12-3 16:25

19# elkay

我用这种方法搜了一下可我觉得好像没一个是相对应的,我接着又搜了下紧跟其后的“爱普生ME系列”结果源码里没有相关信息?!
作者: elkay    时间: 2009-12-3 16:46

21# 早安晨光


有是肯定有对应的,主要你现在还没上手可能心里没谱,你可以一个一个试试看过滤不同的内容效果怎么样,这样总能找到正确的

或者这样,我建议你找个比较简单的网站,练练手,不一定要过滤广告,你随便过滤什么都行,比如你就拿tw论坛联手,试试过滤标题啊,过滤某个帖子啊,过滤快速回复啊这些,累积一些经验,以后找起来就简单了。这玩意儿跟打游戏一样,你得练级,呵呵
作者: 早安晨光    时间: 2009-12-3 17:06

本帖最后由 早安晨光 于 2009-12-3 17:12 编辑

乱枪打鸟貌似被我打中了……


      <pattern type="1">
          <targets>
            <param>
              <![CDATA[div]]>
            </param>
          </targets>
          <pattern type="2">
              <targets>
                <param>
                  <![CDATA[class="all_bg1"|class="ad"|class="adgrey"|class="admid1"| class="admid"]]>
                </param>
                <replace>
                  <![CDATA[<!--AD Blocked by TheWorld 3-->]]>
                </replace>
              </targets>
          </pattern>
      </pattern>
   
unamed1259831948.jpg

图片附件: unamed1259831948.jpg (2009-12-3 17:06, 168.58 KB) / 下载次数 3166
http://bbs.theworld.cn/attachment.php?aid=86737&k=c10c0356e0c634d8959125d2e7a3fbaf&t=1732299524&sid=qlruxq


作者: elkay    时间: 2009-12-3 17:18

23# 早安晨光


恭喜你
怎么样,越来越上手了吧?呵呵
作者: 早安晨光    时间: 2009-12-3 17:19

根据 jym2005提供的思路我找到了最可疑的区域
111.JPG

图片附件: 111.JPG (2009-12-3 17:18, 38.72 KB) / 下载次数 2768
http://bbs.theworld.cn/attachment.php?aid=86738&k=1a2325a6a53199d2a548ea3762862f1f&t=1732299524&sid=qlruxq


作者: 早安晨光    时间: 2009-12-3 17:24

24# elkay

谢谢指导 我会继续关注教程的
作者: 早安晨光    时间: 2009-12-3 18:59

本帖最后由 早安晨光 于 2009-12-3 19:01 编辑

我把规则整理了一下( 基于xwhyc通杀过滤规则内的):
<?xml version="1.0" encoding="utf-8"?>
<adfilter>
<version>1.0</version>        
  <rules>
<rule>
   <name>beareyes.com.cn</name>
   <domains>
    <domain>
     <include>
      <![CDATA[*beareyes.com.cn*]]>
     </include>
    </domain>
   </domains>
   <pattern type="1">
    <targets>
     <param>
      <![CDATA[div]]>
     </param>
    </targets>
    <pattern type="2">
     <targets>
      <param>
       <![CDATA[class="all_bg1"|class="cstxt1"|style="display:none"|id="beargoo"]]>
      </param>
      <replace>
       <![CDATA[<!--AD Blocked By TheWorld 3-->]]>
      </replace>
     </targets>
    </pattern>
   </pattern>
  </rule>
</rules>
</adfilter>
得出以下效果:
unamed1259838550.jpg
请问空白处怎么去掉?

图片附件: unamed1259838550.jpg (2009-12-3 18:59, 108.63 KB) / 下载次数 2808
http://bbs.theworld.cn/attachment.php?aid=86742&k=ce8d7ebeb329646dbe395fbc643c0564&t=1732299524&sid=qlruxq


作者: elkay    时间: 2009-12-3 20:02

一样啊,到页面源码里找找看
作者: jym2005    时间: 2009-12-3 20:04

提示: 作者被禁止或删除 内容自动屏蔽
作者: tinham    时间: 2009-12-3 20:52

结合TW2的插件viewpage侧边栏版来查看,会起到事半功倍的效果
作者: 早安晨光    时间: 2009-12-3 22:40

位置是找到了,用乱枪打鸟的方法把可疑的div全都加上还是不行,我觉得那个空白处很难搞掉。         
111.JPG

图片附件: 111.JPG (2009-12-3 22:39, 52.35 KB) / 下载次数 2822
http://bbs.theworld.cn/attachment.php?aid=86775&k=58d7b5819ea0f259d90d437259b317c6&t=1732299524&sid=qlruxq


作者: elkay    时间: 2009-12-3 22:51

定下心来,别急,一个一个试,这是最好的办法,也是最能了解html的方法,如果你每次都是胡乱选择,即使你每次都选对了也不会有提高的,只有通过一个一个试的办法才能更好的了解html语法,会对你以后再找别的有很大帮助的
作者: xwhyc    时间: 2009-12-3 22:55

位置是找到了,用乱枪打鸟的方法把可疑的div全都加上还是不行,我觉得那个空白处很难搞掉。         
86775
早安晨光 发表于 2009-12-3 22:40 http://bbs.ioage.com/cn/images/common/back.gif

这个因为div有嵌套所以不行,用T5就很简单了<div class="all_bg16">,替换<div style="display:none">
作者: 早安晨光    时间: 2009-12-3 23:32

33# xwhyc

T5怎么写?我不会啊
作者: vokins    时间: 2009-12-4 00:11

搬板凳过来学习~
作者: elkay    时间: 2009-12-4 13:57

33# xwhyc


tw3中嵌套也可以过滤的,程序会自行判断只要找对标签属性即可
作者: xukongzhijian    时间: 2009-12-4 16:44

<pattern type="1">
        <targets>
                <param>
                        <![CDATA[div]]>
                </param>
                <paramex>
                <![CDATA[signatures]]>
                </paramex>
        </targets>
        <pattern type="3">
                <targets>
                        <param>
                                <![CDATA[<img]]>
                        </param>
                        <reverse>
                                <![CDATA[1]]>
                        </reverse>
                        <replace>
                        <![CDATA[<!--signatures without image-->]]>
                        </replace>
                </targets>
        </pattern>
</pattern>


                求助 <![CDATA[<!--signatures without image-->]]>这个地方signatures without image不是应该是图像地址吗
作者: elkay    时间: 2009-12-4 17:37

37# xukongzhijian


replace

是替换串,是用来替换上面匹配到的内容的,替换串内可以是任意内容
作者: 早安晨光    时间: 2009-12-4 18:34

elkay 大  还是举例说一下各标签的用法吧,我所知道的有 div、script、 iframe具体还有哪些如何配合寻找网页源码内相关要素使用,请举例说一下。
作者: elkay    时间: 2009-12-4 18:45

一般常用的就这几个,以及table、span等这些了

寻找要过滤的内容这个没有什么秘诀,一般来说都是通过定位相邻的内容来寻找,最主要的是这个只能靠经验累积,你每一次分析页面源码都是一次积累,慢慢的你就会对页面上的内容在源码中的位置有一定了解;或者借助第三方工具,比如firebug或者ie8的开发者工具,目前tw3中没有类似的功能
作者: 早安晨光    时间: 2009-12-4 18:52

40# elkay

这几个标签什么含义,具体对应过滤哪些内容,请简单举例讲解一下。
作者: elkay    时间: 2009-12-4 19:18

关于html的内容到这里看吧
http://www.w3school.com.cn/tags/index.asp
作者: clock    时间: 2009-12-10 21:22

看来不是很容易啊
作者: PlutoHades    时间: 2009-12-10 22:19

嗯,发现目前过滤插件的稳定性还不够,插件经常崩溃造成过滤失败,甚至造成页面一直崩溃中,重启有效
另外就是,加了过滤似乎网页打开变慢很多,会先白屏几秒才出页面
作者: elkay    时间: 2009-12-28 15:24

更新一些内容
作者: april    时间: 2009-12-29 10:17

大E提到的变量我一直没弄明白,我看pop的过滤规则,找到了这一段,能给详细的分析一下吗?
另外[\s\S]和$pop$都是什么含义?
变量太难理解了
  1.         </pattern><pattern type="4">
  2.                 <targets>
  3.                         <param>
  4.                                 <![CDATA[<div class="pop_1_right_1">]]>
  5.                         </param>
  6.                         <paramex>
  7.                                 <![CDATA[</DIV></DIV></td>]]>
  8.                         </paramex>
  9.                 </targets>
  10.                 <pattern type="2">
  11.                         <targets>
  12.                                 <param>
  13.                                         <![CDATA[[\s\S]+]]>
  14.                                 </param>
  15.                                 <replacevar>
  16.                                         <![CDATA[$pop$]]>
  17.                                 </replacevar>
  18.                                 <replace>
  19.                                         <![CDATA[<!--test a---></td>]]>
  20.                                 </replace>
  21.                         </targets>
  22.                 </pattern>
  23.         </pattern><pattern type="5">
  24.                 <targets>
  25.                         <param>
  26.                                 <![CDATA[<div\sclass="pop_1_right_1"\sstyle="margin-bottom:5px">[\s\S]+?<div\sclass="pop_5_1">]]>
  27.                         </param>
  28.                         <replace>
  29.                                 <![CDATA[$pop$
  30. </div>
  31. </div>
  32. <div class="pop_5" style="margin-top:7px;"><div class="pop_5_1">
  33. ]]>
  34.                         </replace>
  35.                 </targets>
  36.         </pattern><pattern type="5">
  37.                 <targets>
  38.                         <param>
  39.                                 <![CDATA[<table\swidth="964"[\s\S]*?</table>]]>
  40.                         </param>
  41.                         <replace>
  42.                                 <![CDATA[ ]]>
  43.                         </replace>
  44.                 </targets>
  45.         </pattern><pattern type="4">
  46.                 <targets>
  47.                         <param>
  48.                                 <![CDATA[<div class='pop' style='margin-top:5px;'>]]>
  49.                         </param>
  50.                         <paramex>
  51.                                 <![CDATA[<div class='pop' style="background-color:#D7E9FF;margin-bottom:5px;margin-top:3px;">]]>
  52.                         </paramex>
  53.                 </targets>
  54.                 <pattern type="2">
  55.                         <targets>
  56.                                 <param>
  57.                                         <![CDATA[[\s\S]+]]>
  58.                                 </param>
  59.                                 <replace>
  60.                                         <![CDATA[<!--test a---><div class='pop' style="background-color:#D7E9FF;margin-bottom:5px;margin-top:3px;">]]>
  61.                                 </replace>
  62.                         </targets>
  63.                 </pattern>
  64.         </pattern>
复制代码

作者: 雲吞麵    时间: 2009-12-29 12:44

学习了 谢谢E大
作者: elkay    时间: 2009-12-29 15:52

46# april


是这样,这里说的变量其实就是我们在过滤规则中匹配到的内容,我们可以在匹配到内容以后把这个保存成一个变量,在后面的规则中可以调用这个变量,也就是前面匹配到的内容。

[\s\S]这个是正则表达式,跟变量没有关系,在搜索匹配内容的时候跟过滤一样,并不是一定要用正则表达式的
作者: april    时间: 2009-12-29 15:56

[\s\S]我还明白,那$pop$是什么意思?代码我研究了半天也没弄明白pcpop里怎么把侧栏移到下面的。
作者: elkay    时间: 2009-12-29 16:32

[\s\S]我还明白,那$pop$是什么意思?代码我研究了半天也没弄明白pcpop里怎么把侧栏移到下面的。
april 发表于 2009-12-29 15:56 http://bbs.ioage.com/cn/images/common/back.gif


$pop$就是变量名称啊,就是匹配到的内容保存成一个名为$pop$的变量

pcpop的规则里就是把侧栏保存成一个变量以后再过滤掉,然后在选定的位置调用这个变量就把侧栏移动到选定的位置了
作者: april    时间: 2009-12-29 16:34

$pop$就是变量名称啊,就是匹配到的内容保存成一个名为$pop$的变量

pcpop的规则里就是把侧栏保存成一个变量以后再过滤掉,然后在选定的位置调用这个变量就把侧栏移动到选定的位置了
elkay 发表于 2009-12-29 16:32 http://bbs.ioage.com/cn/images/common/back.gif
这么说就明白一些了,我再好好看看。
作者: april    时间: 2009-12-31 21:26

还是没弄好

[\s\S]正则表达式是什么意思
作者: jym2005    时间: 2009-12-31 22:01

提示: 作者被禁止或删除 内容自动屏蔽
作者: april    时间: 2009-12-31 22:24

明白多了,

不过变量那还是弄不明白,怎么把一个变量移动到另一个地方。
作者: jym2005    时间: 2009-12-31 22:27

提示: 作者被禁止或删除 内容自动屏蔽
作者: april    时间: 2009-12-31 22:34

变量这个地方比较难琢磨,最好有个更详细的教程什么的。你的腾讯规则我在好好看看。大E的pcpop我是没看懂。
作者: jym2005    时间: 2009-12-31 22:40

提示: 作者被禁止或删除 内容自动屏蔽
作者: kickitout    时间: 2011-3-30 21:08

adblock有他的优点,但是同样缺点也很明显,adblock从功能性上来说连tw2都比不上,何况现在的tw3呢?

有人说规则的编写比较复杂,其实这个是观看角度的问题,就拿教程贴中的例子,那么长一段代码中用户仅仅只需要 ...
elkay 发表于 2009-12-2 22:03 http://bbs.ioage.com/cn/images/common/back.gif

tw3的过滤确实比adblock强,强得只能过滤当前源文件中写的元素,用神马js写出来的元素统统都过滤不了。真厉害啊




欢迎光临 世界之窗论坛 (http://bbs.theworld.cn/) Powered by Discuz! 7.2