广告过滤服务器端
我正在开发一个Web应用程序,我在其中显示来自其他网站的HTML。 在显示最终版本之前,我想摆脱广告。
关于如何实现这一点的任何想法,建议? 它不需要是一个超级高效的过滤工具,我在考虑将adblockplus定义的一些filter移植到Ruby,并在Nokogiri的帮助下返回解析的文档。
假设我使用超级通配符filterad
。 这不是官方adblock,但为了简单起见,我会在这里使用它。 然后想法是删除任何属性与filter匹配的所有元素,例如: src="http://ad.foo.com?my-ad.gif"
href="http://ad.foo.com"
class="annoying-ad"
等
此filter的Nokogiri命令是:
doc.xpath("//*[@*[contains(., 'ad')]]").each { |element| element.remove }
我为此页面应用了filter:
结果是:
不是那么糟糕,请注意全局通配符filter也删除了有效的元素,如标题,因为它们具有id="masthead"
等属性。
所以我认为这种方法对我的情况来说是好的,现在的问题是使用什么filter? 他们有一个巨大的filter列表 ,我不想迭代所有这些filter。 我正在考虑抓住前10-20并根据它解析文档,那里有最受欢迎的列表吗? 如果是这样,我一直无法找到它。