MozTW 討論區
https://forum.moztw.org/

Adblock有辦法檔"一段語法"嗎??
https://forum.moztw.org/viewtopic.php?f=11&t=16586
1 頁 (共 2 頁)

發表人:  Sheng [ 2006-11-23, 16:08 ]
文章主題 :  Adblock有辦法檔"一段語法"嗎??

譬如我在yahoo/tw想要遮蔽這塊物件
<div class="md" id="ec">...</div>
不過實在不知道該怎麼為adblock寫濾鏡
或者一定要stylish才能做到呢?

發表人:  Sheng [ 2006-11-23, 16:24 ]
文章主題 : 

自問自答
檔div的語法
#div(某某)

某某就是你想要檔掉(其實只是隱藏)的元素

發表人:  Sheng [ 2006-11-23, 16:32 ]
文章主題 : 

不過遇到很單純的html似乎就無能為力了
http://www.pchome.com.tw/
廣告完全是框在乾淨的<td>裡面 @@

發表人:  [ 2006-11-23, 16:40 ]
文章主題 : 

RIP
很好用

發表人:  AlanLive [ 2006-11-23, 20:51 ]
文章主題 : 

我覺得廣告擋個差不多就好了吧,擋太過火,網頁看起來空空洞洞也怪怪的,大概因人而異吧。

發表人:  Sheng [ 2006-11-23, 22:28 ]
文章主題 : 

AlanLive 寫:
我覺得廣告擋個差不多就好了吧,擋太過火,網頁看起來空空洞洞也怪怪的,大概因人而異吧。

擋掉的話其他物件自然會往上推啊
事實上很多網站的廣告太多太雜甚至老出現在過於礙眼的地方了

發表人:  orange [ 2006-11-26, 15:52 ]
文章主題 : 

用CSS 再加上Stylish作管理

發表人:  nio127 [ 2006-11-27, 02:23 ]
文章主題 : 

Sheng 寫:
譬如我在yahoo/tw想要遮蔽這塊物件
<div class="md" id="ec">...</div>
不過實在不知道該怎麼為adblock寫濾鏡
或者一定要stylish才能做到呢?


ABP (ad block plus)可以使用元素隱藏條件。
以上面的例子來說:
tw.yahoo.com##div[id='ec'] 或是
tw.yahoo.com##div[class='md']
用id應該就可以了。

http://adblockplus.org/en/filters
這邊有教怎麼寫ABP的過濾語法,
可以用正規表示法來方式來擋,真是一大優點。
一段語法,輕輕鬆鬆擋掉一群廣告。 :twisted:

發表人:  knives [ 2006-11-27, 09:47 ]
文章主題 : 

nio127 寫:
Sheng 寫:
譬如我在yahoo/tw想要遮蔽這塊物件
<div class="md" id="ec">...</div>
不過實在不知道該怎麼為adblock寫濾鏡
或者一定要stylish才能做到呢?


ABP (ad block plus)可以使用元素隱藏條件。
以上面的例子來說:
tw.yahoo.com##div[id='ec'] 或是
tw.yahoo.com##div[class='md']
用id應該就可以了。

http://adblockplus.org/en/filters
這邊有教怎麼寫ABP的過濾語法,
可以用正規表示法來方式來擋,真是一大優點。
一段語法,輕輕鬆鬆擋掉一群廣告。 :twisted:

有個疑問
實際上這些div的東西,有沒有在一開始載入網頁的時候就被擋下來而沒下載
或者只是單純被隱藏起來了而已呢
另外因為常逛論壇,而論壇常常有一些置頂的公告的table,
有辦法用adblock plus去擋這些置頂公告
我目前是用stylish去隱藏,可是實際上應該也是有下載這些表格的內容吧

發表人:  Sheng [ 2006-11-27, 10:06 ]
文章主題 : 

nio127 寫:
ABP (ad block plus)可以使用元素隱藏條件。
以上面的例子來說:
tw.yahoo.com##div[id='ec'] 或是
tw.yahoo.com##div[class='md']
用id應該就可以了。

感謝指導 : )

nio127 寫:
http://adblockplus.org/en/filters
這邊有教怎麼寫ABP的過濾語法,
可以用正規表示法來方式來擋,真是一大優點。
一段語法,輕輕鬆鬆擋掉一群廣告。 :twisted:

我後來發現他還是不好用

譬如我今天要檔的是
tw.yimg.com/a/tw/wenchuan/clothes_300250_373911_111606.jpg
tw.yimg.com/英/tw/英/英_數_數_數.jpg

要檔的關鍵有
1. 第一層的yimg
2. 第二層的wenchuan以及幾個已知的名稱
3. 第三層的英文+底線+數字+數字+數字+指定檔案格式

因為少了一點描述都有可能導致多或者少檔
所以我的濾鏡就必須是像這樣
/yimg\.com\/\w\/\w\w\/(wenchuan|某某)\/(clothes|某某|某某)\_\d\d\d\d\d\d\_\d\d\d\d\d\d\_\d\d\d\d\d\d\.(swf|jpg|gif)

而不能以萬用字元之類的方式省略掉中間有變化以及無關緊要的部份
譬如/yimg*\/*(wenchuan|某某)*\d\_\d\_\d\.(swf|jpg|gif)
或者 (yimg) And (wenchuan OR 某某) And (\d\_\d) And (swf|jpg|gif)


或者是其實有更簡潔的寫法呢?
(因為有的網站並不會把廣告特別擱在一個伺服器,所以不能擋掉某些伺服器的東西;同時有的關鍵字在別的網站可能不是廣告,譬如banner,所以就變成有如上述必須量身訂做濾鏡的情形;也因此,便得無比麻煩,因為濾鏡的內容牽涉到不只一層的內容…

發表人:  nio127 [ 2006-11-27, 11:10 ]
文章主題 : 

knives 寫:
有個疑問
實際上這些div的東西,有沒有在一開始載入網頁的時候就被擋下來而沒下載
或者只是單純被隱藏起來了而已呢
另外因為常逛論壇,而論壇常常有一些置頂的公告的table,
有辦法用adblock plus去擋這些置頂公告
我目前是用stylish去隱藏,可是實際上應該也是有下載這些表格的內容吧


其實用ABP設定擋元素,個人認為效果是和Stylish的display:none !important意思是一樣的。
因為網頁元素這東西,一定是要下載完html才能分析,再去做處理,而不類似jpg|gif|swf|等之類的影像or多媒體檔案,遇到符合條件就不下載。

所以如果是擋元素,stylish意思是一樣的。
個人認為ABP好用在用regular express的功能。 :lol:

發表人:  nio127 [ 2006-11-27, 14:11 ]
文章主題 : 

Sheng 寫:
nio127 寫:
http://adblockplus.org/en/filters
這邊有教怎麼寫ABP的過濾語法,
可以用正規表示法來方式來擋,真是一大優點。
一段語法,輕輕鬆鬆擋掉一群廣告。 :twisted:

我後來發現他還是不好用

譬如我今天要檔的是
tw.yimg.com/a/tw/wenchuan/clothes_300250_373911_111606.jpg
tw.yimg.com/英/tw/英/英_數_數_數.jpg

要檔的關鍵有
1. 第一層的yimg
2. 第二層的wenchuan以及幾個已知的名稱
3. 第三層的英文+底線+數字+數字+數字+指定檔案格式

因為少了一點描述都有可能導致多或者少檔
所以我的濾鏡就必須是像這樣
/yimg\.com\/\w\/\w\w\/(wenchuan|某某)\/(clothes|某某|某某)\_\d\d\d\d\d\d\_\d\d\d\d\d\d\_\d\d\d\d\d\d\.(swf|jpg|gif)

而不能以萬用字元之類的方式省略掉中間有變化以及無關緊要的部份
譬如/yimg*\/*(wenchuan|某某)*\d\_\d\_\d\.(swf|jpg|gif)
或者 (yimg) And (wenchuan OR 某某) And (\d\_\d) And (swf|jpg|gif)
或者是其實有更簡潔的寫法呢?

您好,有更簡潔的寫法。
如上面的6位數字,您用\d重複6次,可以簡化成\d{6},或是搭配使用 ? + *
? 表示0或1次
+ 表示1以上次數
* 表示0或任何次數
{count} 表示固定count次
{1,3} 表示1到3次
{4,} 表示4次以上
{0,1} 意同 ?
{1,} 意同+
{0,} 意同*

另外 . 表示任何一個字元, .*表示任何字元,什麼字串都符合。

關於regular express的文法蠻廣的,小弟也只是略知一二,而各種編輯器或程式支援的regexp程式又不同,所以可能要多閱讀相關文件及比較。

http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:RegExp
這裡可以參考看看,是用於javascript的regexp。

Sheng 寫:
(因為有的網站並不會把廣告特別擱在一個伺服器,所以不能擋掉某些伺服器的東西;同時有的關鍵字在別的網站可能不是廣告,譬如banner,所以就變成有如上述必須量身訂做濾鏡的情形;也因此,便得無比麻煩,因為濾鏡的內容牽涉到不只一層的內容…


的確是,小弟試著用ABP將yahoo tw的廣告給擋掉,發現並不是那麼容易。除了要注意不同層頁面外,來源伺服器多,還有各種伺服器來源的圖示有滲雜廣告及網頁圖像。規則寫起來,還真需多花時間下去觀察呢!

發表人:  Sheng [ 2006-11-27, 14:32 ]
文章主題 : 

nio127 寫:
您好,有更簡潔的寫法。
如上面的6位數字,您用\d重複6次,可以簡化成\d{6},或是搭配使用 ? + *

我還以為這是「某個指定的d出現六次的意思」 @@
譬如/a{1,3}會找到caandy的兩個a

然後,以yahoo而言,數字可能是四或者六位
那我就得寫(\d\d\d\d|\d\d\d\d\d\d),而且需要很多組
感覺還是頗不效率 >_<

nio127 寫:
另外 . 表示任何一個字元, .*表示任何字元,什麼字串都符合。

不過還是不夠好用
譬如我要檔
yimg/某某1/某某2/../某某n/某某r.gif
我不能寫成yimg/*某某r.gif
一定要把某某1到某某n標示出來
最低限度也要把這些「某某」的字數用等量的*代替
但是這樣就失去了星號的意義

就像如果我在cmd下要打 dir *****.***才能找到某個檔案,
不是很無聊嗎 >_<

發表人:  nio127 [ 2006-11-27, 15:03 ]
文章主題 : 

Sheng 寫:
nio127 寫:
您好,有更簡潔的寫法。
如上面的6位數字,您用\d重複6次,可以簡化成\d{6},或是搭配使用 ? + *

我還以為這是「某個指定的d出現六次的意思」 @@
譬如/a{1,3}會找到caandy的兩個a

然後,以yahoo而言,數字可能是四或者六位
那我就得寫(\d\d\d\d|\d\d\d\d\d\d),而且需要很多組
感覺還是頗不效率 >_<

您好,如a{1,3}表示a有出現1次到3次都符合。
以這個例子: /ca{1,3}ndy/
則candy,caandy,caaandy三個都符合,
而如cbndy(a次數0)則不符合, caaaandy也不符合(a次數4超過條件)。

但如果你下的條件僅只有 a{1,3},則上面的caaaandy就符合了,次數要配合前後條件使用比較有意義。

Sheng 寫:
nio127 寫:
另外 . 表示任何一個字元, .*表示任何字元,什麼字串都符合。

不過還是不夠好用
譬如我要檔
yimg/某某1/某某2/../某某n/某某r.gif
我不能寫成yimg/*某某r.gif
一定要把某某1到某某n標示出來
最低限度也要把這些「某某」的字數用等量的*代替
但是這樣就失去了星號的意義

就像如果我在cmd下要打 dir *****.***才能找到某個檔案,
不是很無聊嗎 >_<


您好,如果要yimg.com下面的gif全部符合這個filter,可以使用:
/yimg\.com.*?\.gif.*?/
或是
/yimg\.com.*?\.(gif|png|jpg|swf).*?/ 則是將gif,png,jpg,swf都濾掉。

至於上面的*某某n 某某r,小弟駕鈍,可以舉一些完整的URI嗎?

發表人:  Sheng [ 2006-11-27, 15:10 ]
文章主題 : 

nio127 寫:
您好,如果要yimg.com下面的gif全部符合這個filter,可以使用:
/yimg\.com.*?\.gif.*?/

這裡有個大問題
台灣yahoo的廣告不只使用gif或者swf
其實還包括了jpg
但是如果我們把yimg的jpg也擋下來
便會發現首頁便得慘不忍睹

*某某n某某r是表示要阻擋的關鍵字不只一個
並且跨越了多層資料夾或者不是排在一起的

譬如如果我要檔

關鍵字1/~~中略~~/關鍵字2~~中略~~關鍵字3

便會發現adblock的濾鏡撰寫會變得相當麻煩
因為我不能寫

「關鍵字1 and 關鍵字2 and 關鍵字3」

1 頁 (共 2 頁) 所有顯示的時間為 UTC + 8 小時
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/