如何屏蔽 startpage.com 上的广告?

如何屏蔽 startpage.com 上的广告?

我尝试了以下方法,但没有效果:

startpage.com##[style*="background-color:#F5F9FF;"]

知道如何解决这个问题吗?

复制:转到https://startpage.com/do/search- 例如搜索adblock。您会在页面顶部和底部看到令人讨厌的浅蓝色框,上面写着“与 adblock 相关的广告”:

在此处输入图片描述

这是与 Iceweasel(Firefox 38.2.1)和 Adblock Edge 2.1.9.1 一起使用的。


如果不可能,您推荐哪些安全/尊重隐私且无广告的网站来替代 IxQuick 和 Startpage?

答案1

知道如何解决这个问题吗?

有问题的广告位于 ID 为“spon_links”的 div 中。

<div id="spon_links">

您可以使用油脂猴脚本来删除这些 div。


解决方案 1

已确认在使用 uBlock Origin 广告拦截器时,此功能在 Firefox 中有效。

// ==UserScript==
// @name        startpage.com remove ads
// @namespace   startpage.com
// @description Removes ads from startpage.com before they are displayed.
// @include     https://startpage.com/*
// @include     https://*.startpage.com/*
// @run-at      document-start
// @version     2015-09-29
// @grant       GM_addStyle
// ==/UserScript==

GM_addStyle("div#spon_links { display: none !important}");

解决方案 2

未测试。

在下面的示例脚本中替换'ads'为。'spon_links'

4.9. 删除元素

您可以使用 Greasemonkey 的 removeChild 函数一次性删除整个页面。

示例:删除侧边栏广告

这假定有一个元素的 ID 为“ads”。

var adSidebar = document.getElementById('ads');
if (adSidebar) {
    adSidebar.parentNode.removeChild(adSidebar);
}

删除元素removeChild也会删除其中的所有内容。例如,如果您删除一个<table>元素,这也会删除其所有表格单元格(<td>元素)。

来源4.9. 删除元素

答案2

目前新增:

startpage.com##.clicktrackedAd_js添加到我的 uBlock Orgin 过滤列表中即可。不再显示任何广告搜索结果。

答案3

div.spon_links根据@DavidPostill 的通知,我再次查看了页面结构。当启用 Adblock Edge 时,文本广告似乎被移到了 之外,而 Adblock Edge 确实有一个过滤规则spon_links。我不知道这是 Adblock Edge 的不当行为还是 Startpage 的某种反制措施。

有一个比添加自定义 Greasemonkey 脚本更简单的解决方案——只需将 Adblock Edge 换成 uBlock 也可以解决问题。


进一步调查发现,只有当 Adblock Edge 同时完全禁用(“在所有位置禁用”)时,广告才会在启用 uBlock 的情况下消失。即使我仅为 Startpage 禁用它(“在 startpage.com 上禁用”),该网站也会将广告移出容器spon_links。我的解释是Startpage 以某种方式设法访问我的附加组件偏好设置,并检查 Adblock 是否已启用。有那么恶心吗?!


使用 David 的 Greasemonkey 和 的方法removeChild,我找到了以下解决方案,当安装了 Adblock Edge 时,该解决方案仍然有效。似乎必须等到页面加载完毕并尝试避免广告拦截,才能最终找到并删除有问题的元素:

// ==UserScript==
// @name        startpage/ixquick remove ads
// @namespace   startpage.com
// @description Removes ads from startpage/ixquick before they are displayed.
// @include     https://startpage.com/*
// @include     https://*.startpage.com/*
// @include     https://ixquick.com/*
// @include     https://*.ixquick.com/*
// @run-at      document-end
// @grant       none
// @version     2015-09-29
// ==/UserScript==

var fun = function() {
  var results = document.getElementById('bottom-result-container');
  if (results) {
    var ols = results.getElementsByTagName('ol');
    for (i = 0; i < ols.length; i++) {
      var ol = ols[i];
      var ps = ol.getElementsByTagName('p');
      for (j = 0; j < ps.length; j++) {
        var p = ps[j];
        if (p.className == 'head2') {
          var spans = p.getElementsByTagName('span');
          for (k = 0; k < spans.length; k++) {
            if (spans[k].innerHTML.contains("Ads related to")) {
              ol.innerHTML = '';
            }
          }
        }
      }
    }
  }
};
setTimeout(fun, 1);

(抱歉,我的 JavaScript 有点生疏,使用 jQuery 可能更容易一些。)

答案4

在 AdblockPro 中,我可以通过添加此规则来阻止 div:

startpage.com###sponsored_csa1

我使用 ABP Element Hiding Helper 为我选择父 div 并接受其默认规则。

AdBlock Edge 是 ABP 的一个分支,所以我希望那里的规则也能在 ABE 中发挥作用。然而 ABE 已经已停产由其开发人员开发,所以你真的应该回到 ABP(并关闭可接受的广告功能)或切换到 uBlock。

从技术角度来看,uBlock 可能也是更好的选择;它在 FF 中的内存/CPU 负载应该比 ABP 更轻。它还可以与即将推出的电解Firefox 的更新将顶级 UI 和选项卡拆分为单独的进程,并在更严格的限制设置下运行后者,这将使恶意软件作者更难利用它(IE 和 Chrome 多年来一直这样做)。它的预计发布时间可能最早在今年年底。(FF43/12 月 14 日一直是他们的目标日期;他们是否能实现取决于 alpha/beta 版本中的遥测效果如何以及未解决的错误数量有多小。)

相关内容