Многие (если не все) знакомы с ресурсом bash.org.ru. И, хотя юмор там в последнее время очень тупой, старые шутки почитать временами можно. Помимо тупого юмора лично меня на bash.org.ru больше всего раздражает не менее тупая реклама :-) И если со всякими iframe и иже с ним AdBlock может бороться, то со вставками вида

Дэвид Блэйн раскукожил Firefox! Теперь в нём Яндекс!

он уже не справляется (так как они вставляются в вывод на сервере). Достал меня Дэвид Блейн. И Яндекс меня достал. И еще много что меня достало. Наверное, надо отдохнуть. Но речь не об этом. В общем, если меня что-то раздражает, я от этого избавляюсь (если читать, то с комфортом). Задачка как раз для Greasemonkey.

Ранее я уже приводил пример пользовательского скрипта для извлечения ASIN с amazon.com. Здесь используется нечто похожее.

Идея состоит в том, что для нормальных цитат после <hr class="iq"> сразу идет <script type="text/javascript" language="JavaScript"> и только потом <div class="q">, а в случае с рекламой <script> отсутствует; всё показано на рисунке:

Переходим к коду.

// ==UserScript==
// @name          Bash.org.ru Ads Remover
// @namespace     http://sjinks.org.ua/
// @include       http://bash.org.ru/*
// @exclude       http://bash.org.ru/abysstop
// @exclude       http://bash.org.ru/abyssbest
// ==/UserScript==

var x = document.evaluate(
    '//div[@id="quotes"]/hr[@class="iq"]/following-sibling::*[position()=1][@class="q"]',
    document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null
);

for (var i=0; i<x.snapshotLength; ++i) {
    var a = x.snapshotItem(i);
    while (1) {
        var b = a.nextSibling;
        a = a.parentNode.removeChild(a);
        if (b.tagName && 'div' == b.tagName.toLowerCase()) {
            a = b;
        }
        else {
            break;
        }
    }
}

x = document.evaluate('//iframe', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
for (i=0; i<x.snapshotLength; ++i) {
    a = x.snapshotItem(i);
    a.parentNode.removeChild(a);
}

Устанавливаем, активируем и не смотрим на рекламу. Всё-таки XPath — это вещь!

Добавить в закладки
  • del.ici.ous
  • Digg
  • Furl
  • Google
  • Simpy
  • Spurl
  • Y! MyWeb
  • БобрДобр
  • Мистер Вонг
  • Yandex.Закладки
  • Текст 2.0
  • News2
  • AddScoop
  • RuSpace
  • RUmarkz
  • Memori
  • Google Bookmarks
  • Писали
  • СМИ 2
  • Моё Место
  • 100 Закладок
  • Ваау!
  • Technorati
  • RuCity
  • LinkStore
  • NewsLand
  • Lopas
  • Закладки - IN.UA
  • Connotea
  • Bibsonomy
  • Trucking Bookmarks
  • Communizm
  • UCA
  • Slashdot
  • Magnolia
  • Blogmarks
  • Current
  • Meneame
  • Oknotizie
  • Diigo
  • Funp
  • Hugg
  • Dealspl.us
  • N4G
  • Mister Wong
  • Faves
  • Yigg
  • Fresqui
  • Care2
  • Kirtsy
  • Sphinn

Связанные записи

3
Июль
2008

Комментарии к статье «Убиваем рекламу на bash.org.ru, или, Greasemonkey в действии» (2)  »

  1. Vladimir says:

    То же самое для tak-to.ru:

    [-]
    // ==UserScript==
    // @name          tak-to.ru Ads Remover
    // @namespace     http://sjinks.org.ua/
    // @include       http://tak-to.ru/*
    // ==/UserScript==

    var x = document.evaluate(
        '(//div[@id="middle"]//table//td[position()=3])|(//div[@id="middle"]//div[not(@id)])',
        document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null
    );

    for (var i=0; i<x.snapshotLength; ++i) {
        var a = x.snapshotItem(i);
        a.parentNode.removeChild(a);
    }
  2. SaltyDog says:

    Читать со страницы - прошлый век уже :)
    Слава богу, пока не догадались рекламу в rss пихать. И вообще, freebsd.rusnet.org.ru/bash педалит %)

    з.ы. задолбался угадывать капчу

Подписаться на RSS-ленту комментариев к статье «Убиваем рекламу на bash.org.ru, или, Greasemonkey в действии» Trackback URL: http://blog.sjinks.org.ua/javascript/217-killing-ads-on-bashorgru-greasemonkey-in-action/trackback/

Оставить комментарий к записи «Убиваем рекламу на bash.org.ru, или, Greasemonkey в действии»

Вы можете использовать данные тэги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Оставляя комментарий, Вы выражаете своё согласие с Правилами комментирования.

Подписаться, не комментируя