2012-02-25 98 views
3

我目前正在做一個研究項目,我正試圖找出一個好方法來識別給予訪問網頁html的廣告。識別網頁上的廣告的機制[特別是AdBlock]

我認爲從AdBlock開始可能是一個好主意。 AdBlock是一種防止向用戶顯示廣告的程序,因此推測它具有將廣告識別爲事物的機制。

我下載了AdBlockPlus的源代碼,但是我發現自己完全丟失了所有的文件。我不知道從哪裏開始尋找這種檢測機制,所以我想知道是否有人對從哪裏開始有任何建議。或者,如果您之前已經處理了AdBlock並且熟悉它,我將不勝感激任何額外的信息。

例如,如果網頁需要在真實瀏覽器中呈現以使用Adblock,則有程序會自動加載網頁,所以這不會是一個問題,但我不知道如何弄清楚如果這是AdBlock首先要做的。

注:廣告攔截是用Python和Perl :)

謝謝!

+0

不,您並不需要渲染元素才能使用Adblock。所有你需要的是可以應用在HTML元素的URL上的過濾規則,以檢查它們是否是廣告 – Phani 2012-02-25 03:01:40

回答

3

我建議你先看看寫作adblock filter rules

然後,一旦您對此有所瞭解,您可以開始解析可用於各種語言的adblock lists以滿足您的需求。

+0

哦謝謝!另一個問題是:你提到了「adblock列表」,他們稱之爲「訂閱」,其中「過濾器列表」,例如:https://easylist-downloads.adblockplus.org/easylist.txt 但是,它只是簡單的看起來像一個URL列表。過濾器是否僅限於列出URL的概念(可能帶有通配符*)? – stogers 2012-02-25 03:35:49

+0

此外,您還有[## rules](http://adblockplus.org/en/filters#elemhide)用於識別HTML元素中的廣告。您也有正則表達式支持(儘管不是出於性能原因而推薦),規則並不總是包含主機名。您還可以使用[@@](http://adblockplus.org/en/filters#whitelist)列入白名單。但總的來說,規則很簡單。 – Phani 2012-02-25 04:19:40

+0

你碰巧知道這是什麼意思:widget.shopstyle.com/widget?pid=$subdocument,third-party 它有一個逗號,我無法找到你所關聯的過濾規則中的含義。 – stogers 2012-04-26 00:10:28