web-dev-qa-db-ja.com

DuckDuckGoの検索結果からサイトを完全に除外/ブラックリストに登録する

DuckDuckGo を使用すると、検索クエリに-site:example.comを追加することにより、検索結果から特定のサイトを一時的に削除できます。

望ましくないWebサイトを検索結果から永久にブロック/ブラックリスト/除外する方法はありますか? DDG設定には何も見つかりませんでしたが、GreasemonkeyスクリプトまたはFirefox拡張機能が存在する可能性があります。

7
foerno

標準のURL書き換え/リダイレクトパターン を使用すると、Greasemonkey/Tampermonkey/genericユーザースクリプトを次のように使用できます。

// ==UserScript==
// @name        DuckDuckGo, Always add certain search parameters
// @match       *://*.duckduckgo.com/*
// @run-at      document-start
// @noframes
// @grant       none
// ==/UserScript==

//--- SET THIS NEXT VARIABLE TO TASTE.
var stickySrchTerm  = "-site:wikipedia.org";

var stckySrchEncdd  = encodeURIComponent (stickySrchTerm);
var oldUrlSearch    = location.search;

//--- Test that haven't already redirected.
if ( ! oldUrlSearch.includes (stckySrchEncdd) ) {
    //--- Our term must go in the `q=` portion of `location.search`.
    var srchParams  = oldUrlSearch.split ("&");
    for (var J = 0, L = srchParams.length;  J < L;  J++) {
        if (/^\??q=/.test (srchParams[J]) ) {
            srchParams[J] += "+" + stckySrchEncdd;
            break;
        }
    }
    var newUrlSearch    = srchParams.join ("&");
    var newURL          = location.protocol + "//"
                        + location.Host
                        + location.pathname
                        + newUrlSearch
                        + location.hash
                        ;
    /*-- replace() puts the good page in the history instead of the
        bad page.
    */
    location.replace (newURL);
}
1
Brock Adams