okboy
小狐狸
小狐狸
  • UID22878
  • 注册日期2008-02-10
  • 最后登录2011-02-28
  • 发帖数38
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
阅读:5471回复:13

★如何才能让Adblock的黑名单中排除某些网站?★

楼主#
更多 发布于:2008-02-10 11:50
由于Adblock的白名单是全局性,如果我想在某个过滤规则中排除某些网站不知道应该如何编写才行?例如我把“http://*.js”添加到广告过滤规则,但同时又想把“http://*bbs.pconline.com.cn/、http://*/js/*”在这个过滤规则中排除出去,应该如何编写呢?望各位指点一下。
fang5566
管理员
管理员
  • UID3719
  • 注册日期2005-03-07
  • 最后登录2025-05-15
  • 发帖数18492
  • 经验4848枚
  • 威望5点
  • 贡献值4324点
  • 好评度1117点
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 终身成就
1楼#
发布于:2008-02-10 11:50
白名单的优先级应该是比黑名单来的高的吧?
因此将后面两条规则设置成为白名单,前面第一条规则就不会对它们生效了吧?
Firefox More than meets your experience
okboy
小狐狸
小狐狸
  • UID22878
  • 注册日期2008-02-10
  • 最后登录2011-02-28
  • 发帖数38
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
2楼#
发布于:2008-02-10 11:50
fang5566:白名单的优先级应该是比黑名单来的高的吧?
因此将后面两条规则设置成为白名单,前面第一条规则就不会对它们生效了吧?
回到原帖


这个当然了,但我不想其它的过滤规则也对后面两条规则免疫。
fang5566
管理员
管理员
  • UID3719
  • 注册日期2005-03-07
  • 最后登录2025-05-15
  • 发帖数18492
  • 经验4848枚
  • 威望5点
  • 贡献值4324点
  • 好评度1117点
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 终身成就
3楼#
发布于:2008-02-10 11:50
白名单是全局的,似乎adp并没有按楼主说的只针对某个特定网站的规则生效与免疫!如果你想在某个过滤规则中排除某些网站, 那最好就是在这个过滤规则的编写上下点功夫,如果只是针对js,可以试试noscript或者yescript!
Firefox More than meets your experience
web123lai
千年狐狸
千年狐狸
  • UID8036
  • 注册日期2005-08-17
  • 最后登录2019-05-01
  • 发帖数4225
  • 经验13枚
  • 威望1点
  • 贡献值20点
  • 好评度10点
  • 社区居民
4楼#
发布于:2008-02-10 11:50
(?!pattern)

负向预查,在任何不匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如“Windows(?!95|98|NT|2000)”能匹配“Windows3.1”中的“Windows”,但不能匹配“Windows2000”中的“Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始

用这一条应该可以写出符合要求的带有排除功能的正则表达式,不过颇为复杂。楼主是不是可以考虑采用将不希望过滤掉的网站中过滤掉的内容添加到白名单中的做法,通用性虽然差点儿,但会容易很多,也便于修改。不使用正则表达式,如果写得好的话效率还要高一些。
fang5566
管理员
管理员
  • UID3719
  • 注册日期2005-03-07
  • 最后登录2025-05-15
  • 发帖数18492
  • 经验4848枚
  • 威望5点
  • 贡献值4324点
  • 好评度1117点
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 终身成就
5楼#
发布于:2008-02-10 11:50
web狼的好文出自哪里?
Firefox More than meets your experience
web123lai
千年狐狸
千年狐狸
  • UID8036
  • 注册日期2005-08-17
  • 最后登录2019-05-01
  • 发帖数4225
  • 经验13枚
  • 威望1点
  • 贡献值20点
  • 好评度10点
  • 社区居民
6楼#
发布于:2008-02-10 11:50
fang5566:web狼的好文出自哪里?回到原帖

那个wiki的“正则表达式”词条
网址就不贴了,免得……
okboy
小狐狸
小狐狸
  • UID22878
  • 注册日期2008-02-10
  • 最后登录2011-02-28
  • 发帖数38
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
7楼#
发布于:2008-02-10 11:50
web123lai
(?!pattern)

负向预查,在任何不匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如“Windows(?!95|98|NT|2000)”能匹配“Windows3.1”中的“Windows”,但不能匹配“Windows2000”中的“Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始

用这一条应该可以写出符合要求的带有排除功能的正则表达式,不过颇为复杂。楼主是不是可以考虑采用将不希望过滤掉的网站中过滤掉的内容添加到白名单中的做法,通用性虽然差点儿,但会容易很多,也便于修改。不使用正则表达式,如果写得好的话效率还要高一些。
回到原帖


我现在就是采用将不希望过滤掉的网站中过滤掉的内容添加到白名单中的做法,但最大的问题是白名单会对所有过滤规则都免疫的,这才是最头通的
web123lai
千年狐狸
千年狐狸
  • UID8036
  • 注册日期2005-08-17
  • 最后登录2019-05-01
  • 发帖数4225
  • 经验13枚
  • 威望1点
  • 贡献值20点
  • 好评度10点
  • 社区居民
8楼#
发布于:2008-02-10 11:50
还是不太清楚楼主什么意思
比如说:
10条可过滤元素》经过黑名单过滤剩下6条》在过滤掉的4个可过滤元素里面看看哪个不需要过滤将其添加到白名单
这样完全是自己挑过滤元素的方式,不知道楼主有什么要求不能满足。
另外,既然是白名单当然应该对所有的过滤规则免疫,白名单中的内容就是不想过滤的内容啊
添加白名单的时候从可过滤元素里面找不要把地址栏的网址添加到白名单,那样整个网页就不会过滤了
okboy
小狐狸
小狐狸
  • UID22878
  • 注册日期2008-02-10
  • 最后登录2011-02-28
  • 发帖数38
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
9楼#
发布于:2008-02-10 11:50
web123lai:还是不太清楚楼主什么意思
比如说:
10条可过滤元素》经过黑名单过滤剩下6条》在过滤掉的4个可过滤元素里面看看哪个不需要过滤将其添加到白名单
这样完全是自己挑过滤元素的方式,不知道楼主有什么要求不能满足。
另外,既然是白名单当然应该对所有的过滤规则免疫,白名单中的内容就是不想过滤的内容啊
添加白名单的时候从可过滤元素里面找不要把地址栏的网址添加到白名单,那样整个网页就不会过滤了
回到原帖


还是以我在开头的例子来说明一下:
http://*/*.js是我的过滤规则,但由于某些网站网页因为该规则而变得面目全非,所以我想把例如http://*bbs.pconline.com.cn/等网站在这个过滤规则中排除出去,也就是说http://*/*.js的过滤规则对http://*bbs.pconline.com.cn/不起作用,如果我把http://*bbs.pconline.com.cn/直接加入白名单中去,那么我的其它过滤规则全部对它不起作用,这也不是我希望的。我要的是:
http://*bbs.pconline.com.cn/受到全部过滤规则的限制,但同时又对http://*/*.js的过滤规则免疫,不知道这样解释,这位朋友明白了吗
web123lai
千年狐狸
千年狐狸
  • UID8036
  • 注册日期2005-08-17
  • 最后登录2019-05-01
  • 发帖数4225
  • 经验13枚
  • 威望1点
  • 贡献值20点
  • 好评度10点
  • 社区居民
10楼#
发布于:2008-02-10 11:50
呵呵,也许您没有理解我的意思,请注意
添加白名单的时候从可过滤元素里面找不要地址栏的网址添加到白名单,那样整个网页就不会过滤了

就您提出的例子,举例来说就是把可过滤元素里面的
http://bbs.pconline.com.cn/example.js
添加到白名单而不是把地址栏的http://bbs.pconline.com.cn添加到白名单,这样不是希望过滤什么就过滤什么么?
有的时候换个方式工作会更好
okboy
小狐狸
小狐狸
  • UID22878
  • 注册日期2008-02-10
  • 最后登录2011-02-28
  • 发帖数38
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
11楼#
发布于:2008-02-10 11:50
web123lai:呵呵,也许您没有理解我的意思,请注意
就您提出的例子,举例来说就是把可过滤元素里面的
http://bbs.pconline.com.cn/example.js
添加到白名单而不是把地址栏的http://bbs.pconline.com.cn添加到白名单,这样不是希望过滤什么就过滤什么么?
有的时候换个方式工作会更好
回到原帖


如果按照你的方法,有多个可过滤元素岂不都要一一添加到白名单,这样白名单会越来越长,其作用会大大降低。
web123lai
千年狐狸
千年狐狸
  • UID8036
  • 注册日期2005-08-17
  • 最后登录2019-05-01
  • 发帖数4225
  • 经验13枚
  • 威望1点
  • 贡献值20点
  • 好评度10点
  • 社区居民
12楼#
发布于:2008-02-10 11:50

如果按照你的方法,有多个可过滤元素岂不都要一一添加到白名单,这样白名单会越来越长,其作用会大大降低。

效率问题ADP的作者在主页上,版主和一些朋友在本论坛都作过一定的介绍,如果想要写高效的过滤规则可以看一下,这里只指出结论:这样做的效率不会降低。
呵呵,其实添加到白名单的条目不正取决于您写的那条过滤规则的误杀范围么?
当然了,楼主如果愿意在过滤规则中添加排除的功能,尽可以按照这种思路进行下去,条条大路通罗马
fang5566
管理员
管理员
  • UID3719
  • 注册日期2005-03-07
  • 最后登录2025-05-15
  • 发帖数18492
  • 经验4848枚
  • 威望5点
  • 贡献值4324点
  • 好评度1117点
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 终身成就
13楼#
发布于:2008-02-10 11:50
的确,白名单冗长只是你认为比较长不便于查看,但对过滤的速度并没有产生什么影响!
Firefox More than meets your experience
游客

返回顶部