Как заблокировать рекламу на 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

Есть идеи, как решить эту проблему?

Рассматриваемые объявления находятся в div с идентификатором «spon_links».

<div id="spon_links">

Вы можете использоватьГрязная обезьянаскрипт для удаления этих div-ов.


Решение 1

Подтверждено, что это работает в Firefox при использовании блокировщика рекламы uBlock Origin.

// ==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.

Пример: удаление боковой панели с рекламой

Это предполагает, что существует элемент с идентификатором «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, который действительно имеет правило фильтрации для spon_links. Является ли это неправильным поведением Adblock Edge или каким-то ответным действием со стороны Startpage, я не знаю.

Есть более простое решение, чем добавление пользовательского скрипта Greasemonkey — простая замена Adblock Edge на uBlock также решила проблему.


При дальнейшем исследовании реклама исчезает только при включенном uBlock, когда Adblock Edge полностью отключен в то же время («Отключить везде»). Даже если я отключаю его только для Startpage («Отключить на startpage.com»), сайт перемещает рекламу за пределы контейнера spon_links. Мое объяснение таково:Startpage каким-то образом получает доступ к моим настройкам дополнений и проверяет, включен ли AdBlock. Неужели это так отвратительно?!


Используя подход Дэвида из Greasemonkey и removeChild, я придумал следующее решение, которое все еще работает, когда установлен Adblock Edge. Похоже, нужно дождаться загрузки страницы и поиграться с обходом ad-block, пока вы, наконец, не сможете найти и удалить нарушающие элементы:

// ==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, чтобы выбрать родительский div, и принял его правило по умолчанию.

AdBlock Edge — это ответвление ABP, поэтому я бы ожидал, что правило там будет работать и в ABE. Однако ABE былпрекращеноего разработчиком, поэтому вам действительно следует либо вернуться к ABP (и просто отключить функцию приемлемой рекламы), либо перейти на uBlock.

uBlock может быть лучшим выбором и с технической точки зрения; предполагается, что он будет иметь меньшую загрузку памяти/процессора в FF, чем ABP. Он также полностью работает с предстоящимэлектролизОбновление для Firefox, которое разделяет пользовательский интерфейс верхнего уровня и вкладки на отдельные процессы и запускает последние с более жесткими ограниченными настройками, что должно затруднить его использование авторами вредоносного ПО (IE и Chrome делают это уже много лет). Его eta-дата потенциально уже конец года. (FF43/14 декабря была их целевой датой некоторое время; если они это сделают, это будет зависеть от того, насколько хорошо будет выглядеть телеметрия в альфа/бета-сборках и насколько малым будет количество открытых ошибок.)

Связанный контент