【问题标题】:Mechanism for Identifying Ads on a Webpage [Specifically AdBlock] [closed]识别网页上的广告的机制 [特别是 AdBlock] [关闭]
【发布时间】:2012-02-25 02:30:56
【问题描述】:

我目前正在做一个研究项目,我正在尝试找出一种好的方法来识别可以访问网页 html 的广告。

我认为从 AdBlock 开始可能是个好主意。 AdBlock 是一个阻止向用户显示广告的程序,因此推测它具有将事物识别为广告的机制。

我下载了 AdBlockPlus 的源代码,但我发现自己完全迷失在所有文件中。我不确定从哪里开始寻找这种检测机制,所以我想知道是否有人对从哪里开始有任何建议。或者,如果您之前处理过 AdBlock 并且熟悉它,我将不胜感激任何额外的信息。

例如,如果网页需要在真实浏览器中呈现以使用 Adblock,则有一些程序会自动加载网页,所以这不是问题,但我不确定如何确定是否这就是 AdBlock 首先要做的。

注意:AdBlock 是用 Python 和 Perl 编写的 :)

谢谢!

【问题讨论】:

  • 不,您实际上不需要渲染元素就可以使用 Adblock。您所需要的只是可以应用于 HTML 元素的 URL 的过滤规则,以检查它们是否是广告

标签: python open-source web-crawler ads adblock


【解决方案1】:

我建议你先看看写adblock filter rules

然后,一旦您了解这一点,您就可以开始解析adblock lists 以各种语言提供以满足您的需求。

【讨论】:

  • 哦,谢谢!另一个问题:您提到“广告屏蔽列表”,他们称它们为“订阅”,即“过滤器列表”,例如:easylist-downloads.adblockplus.org/easylist.txt 但是,它看起来就像一个 URL 列表。过滤器是否仅限于列出 URL(可能带有通配符 *)?
  • 此外,您还可以使用## rules 来识别 HTML 元素中的广告。您还拥有正则表达式支持(尽管出于性能原因不推荐),并且规则不必总是包含主机名。您也可以使用@@ 将其列入白名单。但总的来说,规则非常简单。
  • 你碰巧知道这是什么意思吗:widget.shopstyle.com/widget?pid=$subdocument,third-party 有一个逗号,我在过滤器中找不到它的意思您将我链接到的规则。
  • $ 后面的东西是选项。请参阅 adblock 过滤规则链接。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-01-30
  • 1970-01-01
  • 2014-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多