web-dev-qa-db-ja.com

startpage.comで広告をブロックするにはどうすればよいですか?

私は以下を試しましたが、効果はありません:

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

これを解決する方法はありますか?

再現するには: https://startpage.com/do/search に移動します-たとえば、adblockを検索します。ページの上部と下部に「adblockに関連する広告」と書かれた厄介な水色のボックスが表示されます。

enter image description here

これは、Iceweasel(Firefox 38.2.1)とAdblock Edge2.1.9.1を使用しています。


それが不可能な場合、IxQuickとStartpageの代わりに、どの安全/プライバシーを尊重し、広告のないサイトをお勧めしますか?

8
0__

これを解決する方法はありますか?

問題の広告は、IDが「spon_links」のdivにあります。

<div id="spon_links">

Greasemonkey スクリプトを使用して、これらのdivを削除できます。


解決策1

これは、uBlockOrigin広告ブロッカーを使用するときに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。要素の削除

RemoveChild関数を使用すると、Greasemonkeyを使用して、ページのチャンク全体を一挙に削除できます。

例:広告サイドバーを削除する

これは、IDが「ads」である要素があることを前提としています。

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

removeChildを含む要素を削除すると、その中のすべてのコンテンツも削除されます。たとえば、<table>要素を削除すると、そのすべてのテーブルセル(<td>要素)も削除されます。

ソース 4.9。要素の削除

6
DavidPostill

@DavidPostillの通知に続いて、ページ構造をもう一度確認しました。 Adblock Edgeが有効になっていると、テキスト広告がdiv.spon_linksの外に移動しているようです。これには、実際にspon_linksのフィルタリングルールがあります。これがAdblockEdgeの誤動作なのか、Startpageからの反作用なのかはわかりません。

カスタムGreasemonkeyスクリプトを追加するよりも簡単な解決策があります。AdblockEdgeをuBlockに交換するだけでも問題は解決しました。


さらに調査すると、Adblock Edgeが完全に同時に無効になっている場合(「どこでも無効」)、uBlockが有効になっている場合にのみ広告が消えます。 Startpageに対してのみ無効にした場合(「startpage.comで無効にする」)、サイトは広告をspon_linksコンテナの外に移動します。私の説明はStartpageはどういうわけか私のアドオン設定にアクセスし、Adblockが一般的に有効になっているかどうかをチェックするです。そんなに厄介なことでしょうか?!


DavidのGreasemonkeyとremoveChildのアプローチを使用して、AdblockEdgeがインストールされている場合でも機能する次のソリューションを思いつきました。問題のある要素を最終的に見つけて削除できるようになるまで、ページが読み込まれ、広告ブロックを回避していじくり回すまで待たなければならないようです。

// ==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の方が簡単です。)

2
0__

AdblockProでは、次のルールを追加することでdivをブロックできました。

startpage.com###sponsored_csa1

ABP Element Hiding Helperを使用して親divを選択し、デフォルトのルールを受け入れました。

AdBlock EdgeはABPのフォークであるため、ABEでもルールが機能することを期待しています。ただし、ABEは開発者によって 廃止 されているため、実際にはABPに戻る(そして受け入れ可能な広告機能をオフにする)か、uBlockに切り替える必要があります。

技術的な観点からも、uBlockの方が適している可能性があります。 FFではABPよりもメモリ/ CPUの負荷が軽いはずです。また、Firefoxの今後の electrolysis アップデートでも完全に機能します。これは、トップレベルのUIとタブを別々のプロセスに分割し、マルウェアの作成者による悪用を困難にする、より厳しく制限された設定で後者を実行します( IEとChromeは何年もの間これを行ってきました)それは潜在的に年末という早い時期です(FF43/12月14日はしばらくの間彼らの目標日でした;彼らがそれを達成した場合アルファ/ベータビルドのテレメトリがどの程度適切に見えるか、および未解決のバグの数がどれだけ少ないかによって異なります。)

広告ブロック拡張機能を uBlock Origin に変更します。このページは、Firefox41.0またはChrome 44.0.2403.155 m)のいずれかを使用するuBlock Originで、広告なしで正常に表示されます。

screenshot of startpage.com search results page in Firefox 41 with uBlock Origin

'Fanboy + Easylist-Merged Ultimate List'のフィルターを有効にします(EasyList、EasyPrivacy、FanboyのEnhanced Tracking、Annoyance、Social Blocking Listがすでに含まれているため、これらのフィルターリストも有効にする必要はありません)。

0
galacticninja