关于如何通杀广告的思路,欢迎讨论啊。

新手入门、经验交流

Moderator: cre

Forum rules
  • 软件自带帮助是最好的入门教程,请仔细阅读;在您掌握最基本知识前,我们没法帮助您
  • 提问前请先查阅软件帮助文件和论坛相关讨论
  • 查阅软件帮助和论坛相关讨论即可解决的问题帖将直接删除,以免浪费他人时间
  • 请学会如何提问,尽量将问题描述清楚,不明确的提问将被直接删除
vvmao
Posts: 34
Joined: Oct 04 2008, 16:59

Re: 一个脑袋两个大,折腾到现在只好求助了,呵呵

Post by vvmao »

phoenix wrote:说实话,我没看出第一个链接有什么特别之处让你不想过滤,它只比另外两个链接在img标签后多了些文字,但那在链接中是很常见的。

第二个链接我测试是可以过滤的。

第三个链接占用了261 bytes,把Byte Limit相应调大就可以了。
我来解释我的思路,我把链接分为几种情况:
1图片在本地,url指向外部-砍
2图片在外部,url指向外部-砍
3图片在本地,url指向内部-留
4图片在外部,url指向内部-留
其实我还想细分成有图片的链接和无图片的链接两种情况,也就是<a*><img*></a>中有无<img*>的情况,每种情况按上述分类,那就是8种不同情况。不过现在已经晕了,先不分了。

那两个链接:

Code: Select all

    "<a href=""http://blog.163.com/redirect.html?url=http://yxp.163.com/product.do?action=detail&productType=photo&findex_photo?080825yxp07""><img src=""http://blog.163.com/style/common/index/image/yxpq.jpg"" width=""100%""></a>
    "
在我这里只匹配了http://blog.163.com/,而没有匹配真正的链接http://yxp.163.com/啊。
我现在的config文件非常纯净,只有几条测试的规则。其余的都删除了。你那里可以过滤是不是其它规则的缘故。
vvmao
Posts: 34
Joined: Oct 04 2008, 16:59

Re: 一个脑袋两个大,折腾到现在只好求助了,呵呵

Post by vvmao »

这段代码链接指向http://www.eachnet.com/,是不应被过滤的;但是img src="http://i1.eachimg.cn/指向了外部地址,所以实际上被过滤了,这是误杀。

Code: Select all

    <a href="http://www.eachnet.com/promo/080904_3c_esnb4.html?_fromid=homepage_04&srcid=a137_4" target="_blank"><img src="http://i1.eachimg.cn/img/mkt/hp/081007_icon3_70x70.gif" />二手笔记本</a>
User avatar
phoenix
Site Admin
Posts: 526
Joined: Dec 29 2007, 16:27

Re: 一个脑袋两个大,折腾到现在只好求助了,呵呵

Post by phoenix »

你目前的规则是测试<a>标记中的url,而不管其是<a>标记中href的值还是<img>标记中src的值。以第一个链接为例,href=*http://中的*实际匹配的是如下部分:

Code: Select all

"http://www.eachnet.com/promo/080904_3c_esnb4.html?_fromid=homepage_04&srcid=a137_4" target="_blank"><img src="
如果你只想测试<a>标记中href的值,需要修改下规则,试试$AV()命令。
vvmao
Posts: 34
Joined: Oct 04 2008, 16:59

Re: 一个脑袋两个大,折腾到现在只好求助了,呵呵

Post by vvmao »

是这样啊,真是巧了,我正好翻译到$AV这里卡住了,不理解这个命令的含义。
$AV(匹配)
应用于:仅限匹配
过滤类型: IN,OUT或者匹配

这个命令用来匹配任意属性值,它首先自动分离并解析这个值,

【This is used to match any attribute's value. It first parses and isolates the value - automatically taking things like quotes vs. no quotes into account. The match within the command is then limited to just the attribute value. Note: Any quotes surrounding the value will not be part of the match. 】
再试试这个页面
http://info.hc360.com/list/link1.shtml,是慧聪网的友情链接页面。里面的链接都是外部链接,但是有的可以过滤掉,有的就是不能。
这个页面只是一个例子,谁能解释一下原因是什么吗?
User avatar
phoenix
Site Admin
Posts: 526
Joined: Dec 29 2007, 16:27

Re: 一个脑袋两个大,折腾到现在只好求助了,呵呵

Post by phoenix »

automatically taking things like quotes vs. no quotes into account
就是说不管属性值有没有被引号括起来,不管引号是单引号还是双引号,这个命令都会匹配。你看原帮助下面的例子就明白了。
vvmao wrote: 再试试这个页面
http://info.hc360.com/list/link1.shtml,是慧聪网的友情链接页面。里面的链接都是外部链接,但是有的可以过滤掉,有的就是不能。
这个页面只是一个例子,谁能解释一下原因是什么吗?
这个问题我在 一开始 就已经回答过你了。
vvmao
Posts: 34
Joined: Oct 04 2008, 16:59

Re: 关于如何通杀广告的思路,欢迎讨论啊。

Post by vvmao »

Code: Select all

Name = "[I]去除所有非本机的链接"
Active = TRUE
URL = "^$LST(SearchList)"
Bounds = "$NEST(<a*>,</a>)"
Limit = 512
Match = "(* href=http://((^\h)*)\w>*</a>)"
Replace = "<font size=2 color=red>@</font>"
加AV属性定义没有看到有作用。
例子可以用搜狐首页测试,ChinaRen,焦点房地产,17173,搜狗还有横幅广告上的文字链接都过滤不掉或者不全

SearchList可以忽略不计,绝对没有问题。
User avatar
phoenix
Site Admin
Posts: 526
Joined: Dec 29 2007, 16:27

Re: 关于如何通杀广告的思路,欢迎讨论啊。

Post by phoenix »

试试:

Code: Select all

[Patterns]
Name = "[I]去除所有非本机的链接"
Active = TRUE
URL = "$TYPE(htm)"
Bounds = "<a\s*</a>"
Limit = 512
Match = "* href=$AV(http://(^\h)*)*"
Replace = "<font size=2 color=red>@</font>"
Post Reply