如何封鎖 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

根據@DavidPostill 的通知,我再次查看了頁面結構。看起來,div.spon_links當啟用 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 版本中的遙測效果如何以及未解決的錯誤數量有多少。)

相關內容