Hatena::ブログ(Diary)

digital 千里眼 @abp_jp このページをアンテナに追加 RSSフィード

Feed Meter TopHatenar Matrix

2009-08-10

Firefox で広告ブロックする方法(Adblock Plus 用ブロックリストの書き方)2009-08-10 版

Adblock Plus の効果

上からCNET JapanITmediaZDNet Japanの例

f:id:k2jp:20080921125632j:imagef:id:k2jp:20080921125633j:image
f:id:k2jp:20080921125634j:imagef:id:k2jp:20080921125635j:image
f:id:k2jp:20080921125636j:imagef:id:k2jp:20080921125637j:image
基本
  • Firefox のアドオンをインストール
アドオン名必須説明
Adblock Plus広告ブロックする機能を提供
Element Hiding Helper マウスを使って直感的にブロック・ルールを作成する為の補助ツール(私は使いませんが...)
誰かが作ってくれたブロックリストを利用することもできる
フィルタ名説明
Known Adblock Plus subscriptions公式サイトに掲載されているブロックリスト
基本的に EasyList だけでいいと思う
ブラウザの動作が重くならないなら EasyPrivacy を加えてもいい
  • 入れすぎると... => 重くなる
  • 海外製のブロックリストは日本語のWebサイトに対応していないことが多い => 自分で作るしかない

ブロックリスト(非表示要素フィルタ)の書き方

ブロック対象の何を手がかりにブロックルールを書くか

ブロック対象の手がかり追加するルールの種類
広告等のリンクURL適用フィルタ
タグの属性(リンクURL とか id や class)非表示要素フィルタ

適用フィルタの書き方は URL を指定するだけで簡単なので詳しくは書かない。面倒なのは非表示要素フィルタの書き方だ

サンプルフィルタ対象ドメインの限定区切り対象のタグ対象タグの属性
##*[class="overture"]なし## なので全てのタグ対象class 属性が overture
##*[href*=".accesstrade.net/at/c.html?"]なし## なので全てのタグ対象href属性に .accesstrade.net/at/c.html? を含む
##div[class$="_ads"]なし##divclass属性が_adsで終わる
sample.net##table[cellspacing="2"][border="0"]sample.net##tablecellspacing 属性が 2 かつborder 属性が 0
補足(重要)

ドメイン指定

  • ワイルドカード は使えない
  • ピリオド . で始めることはできない

属性を使った対象タグの限定(書き方は CSS のセレクタと同じ)

[属性*=""]属性に値を含む
[属性^=""]属性の先頭に値が来る
[属性$=""]属性の末尾に値がくる
  • ちなみに、正規表現を使った書き方はブラウザの動作が遅くなることが多いので推奨されていない

自作のブロックリスト(参考まで)

FooFoo 2009/12/06 13:09 こんにちは、私も某Adblockフィルタ公開リストの製作者です。
こちらの記事が大変参考になったので、自作フィルタからリファレンスURLとして掲載させて頂きましたのでご報告します。(宣伝と思われたくないので、自作フィルタのURLは伏せさせて下さい)

あと差し出がましいようですが、いくつか気になった点を指摘させて頂きます。
まず、記事上部のCNET Japan、ZDNet Japan、ITmediaの例が順番やリンクなどバラバラになっております。
また、Google Codeで公開していらっしゃるリストの編集方針ですが、非表示要素フィルタはダウンロードをブロックできないので、
「 * 要らないコンテンツをわざわざ表示して、
* インターネット回線に余分な負担をかけ、
* ブラウザの表示を遅らせることはありません」
という目的を達成するには適応フィルタも増やさないと、レンダリングにかなり時間の掛かるフィルタになってしまうような気がします。
http://adblockplus.org/en/faq_internal#elemhide

k2jpk2jp 2009/12/07 03:25 > Foo さん

コメントありがとうございます
ご指摘の点はその通りで、さっそく記事のリンクがおかしかった点は直しました
リンク歓迎です。私は SEO に神経質じゃないので

> 適応フィルタを使わないと回線負担を減らすことにはならない...
そうなんです。単なる css で言うところの display:none やってるだけですから
以前は適応フィルタもあったんですが、ビックリマーク(!)がウザくて全部消してしまいました...

ということで、私のフィルタが Element Hiding 機能だけとなっているのは偶然でした
適応フィルタについては、これから増やしていこうと思っているところなので Google Code の文言に一致するようになる予定です

個人的には、polipo の forbidden ファイルで適応フィルタと同じようなことをさせているので、そちらから変換しインポートしようかなと考えています

追伸、
 たぶん私も Foo さんのブロックリスト使ってます
 ありがたやーです

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証