« エコポイント | トップページ | Firefox3.6 と AutoCopy と Copy Plain Text »

2010年1月20日 (水)

Privoxy のフィルタ

先日には Beta のバージョンも 4 へ入り、そろそろ安定版も 4 に到達しそうな GoogleChrome 。
GoogleChrome とペアで使い始めた Privoxy、今日 2010/01/20 現在 Privoxy は 3.0.15 beta 。
Privoxy は GoogleChrome とだけでなく、Firefox、IE 全ての組み合わせで個人的必携なアプリに。

Privoxy は Adblock+(Firefoxの/GoogleChromeの) とは比較できないぐらい手軽さで"負けている"ものの、プロキシさえ通せばブラウザは言うに及ばず他のPCなどでも(使わないけどREGZAでも)フィルタリングの一元管理できる事が特に便利。
何より、「非表示」ではなく「最初から無かった」的な状態にしてしまえるのが心地良い、さらには自分に読みやすいようにページを書き換えてしまえるのは気分が良い。

お世話になったサイトなど

お世話になったというか進行形でお世話になっているサイト、前の時とほぼ同じ。
理解できなくて眺めているだけといえるものの、大いなる感謝を。

 

Privoxy でやっている事、できること事

Firefox ならアドオン/Greasemonkey、GoogleChrome なら拡張機能/UserScript、などでもっと簡単にスマートにできるという点はさておき、Firefox、GoogleChrome、IE、問わずにまとめて適用/管理できるという事で自分を納得させる。

  1. フィルタリング (広告ブロック、広告非表示)
  2. 読まないリンクを踏まないように目立たせたり、リンクを切ったり
    • Yahoo!トピックスの オリコン系や日経TRENDY系の記事とか個人的に読まない物をうっかりクリックしたくない
    • ソーシャルブックマークとか、無駄(に思える)なリンクサイトとか
  3. 一部の見えないモノを見えるように可視化、可読化 (この程度なら全文読める)
  4. リファラの変更/調整
  5. UserAgent の調整/変更
  6. Cookie の一部調整
  7. リダイレクトをすっきり
  8. 「右クリック禁止」を大雑把に阻止 (マウスジェスチャで文句を言われるのは何か違う)
  9. CSS 記述を追加して、フォント強制、リンクの色&スタイル変更、など
    • Web サイトによってはフォントを変えて崩れを防いだり

4.と 6.あたりは GoogleChrome には嬉しいのかな?

Privoxy の設定

前の時の内容とダブりつつも Privoxy フィルタのメモ。
日々アクセスしているWebサイトがダダ漏れ、なので、今後フィルタ全体を通してブログに書く事は無い腹積もり。

設定ファイルそれぞれの追加&変更箇所。

  • config.txt
    基本的な設定ファイル、利用環境に合わせて適宜編集
  • match-all.action (編集せずデフォルトのまま)
  • default.action (編集せずデフォルトのまま)
  • default.filter (編集せずデフォルトのまま)
  • user.filter (使わない)
  • user-SJIS.filter (新規追加)
    user-EUC.filter (新規追加)
    user-UTF8.filter (新規追加)
    フィルタ用ファイル、config.txt に定義して利用
    各々のファイルはファイル名のままの文字コードで保存

config.txt

  • ファイル名の文字コードの通りにフィルタファイルを使い分ける
  • LAN 内での利用
  • Privoxy のオン/オフをショートカットやブックマークレットから利用可能にする
  • ニコニコ動画は NicoCache_nl (port 8080)を通す

フィルタファイルが多いのは文字コード違いを吸収する方法が分からなかったので。
フィルタファイルで使い回しとなる部分には注釈以外2バイト文字は使わないように注意。

user.action

  • 一部の広告、スクリプトはバッサリ落とす
  • 汎用フィルタ作るスキルが無いのと誤爆がやっかいなので面倒でも基本的に各サイトごとにフィルタリング
  • リファラの書き換え(サイトトップからに見せかけ)は、Vector や SorceForge などダウンロード時リファラを見るサイトには注意
  • リダイレクトをいじってみる
  • なるべくプロキシっぽく見えない UserAgent にする
  • 右クリック禁止を適当に阻止
  • その他、マニュアルをみて適当に変更

 

user-SJIS.filer

SJIS で保存。
このフィルタファイルは基本の共通設定となるものも記述。

主な方針

  • フォント指定(CSS追加)は共通設定となるこのファイルに
    • 「メイリオ」等の2バイト文字は使わず「Meiryo」の様に1バイト文字のみで指定する
  • フォント指定を含めたスタイルの内容と注意事項
    • 一部の文字(<h1>、<h2>)に影を付けたので印刷(PDF化)時に注意
      • アドオンや拡張機能では <h1> などへのスタイル強制をしないことで Privoxy を通しているか否かが見て分かる
    • 英字フォントを優先指定しているので半角 ¥ が \ になるので注意、ショッピングサイトではかなり締まらない表示になる
      • メイリオのボールドに負けないよう多少ゴツイ Verdana を組み合わせたので
    • スタイル指定
      • <head> の最後尾に追加
      • 全体のフォント指定(プロポーショナル)と一部要素(等幅)でフォントのスタイルは分けて指定
        組み合わせの都合上、完全な等幅フォントではないのは妥協
      • テキストのリンクへマウスオーバー時にリンクの下線を表示させる
      • リンククリック時の色を変える
      など
  • HTMLソースを見るとき個人的に見やすいように (連続改行など)
  • Amazon の広告は対応させすぎても殺風景になるので程ほどに書き換え
  • あやしげなオブジェクトを読み込まないようにする
    • absolute な iframe とか
  • そのままでは読めないページを一部読めるようにする (TechTargetの一部など)

その他、粛々とサイト毎に対応。

user-UTF8.filer

UTF-8 で保存。基本的には UTF-8 なサイト用の記述。

主な方針

  • 毎日新聞(mainich.jp)は大きく書き換え、4列のうち1列を消す
  • GoogleChrome のダウンロード用に直リンク埋め込み
  • ココログ編集に邪魔な部分を消す(ネタとか話題とか全く要らないので)

その他、粛々とサイト毎に対応。

user-EUC.filer

EUC で保存。基本的には EUC なサイト用の記述。

主な方針

  • Yahoo! JAPAN 関係
    • まとめ過ぎると後で分からなくなる(なった)ので適当にバラしつつ書き換えの目印を残す
    • オリコン系の記事、日経BP系、プレジデント系などは読みたくないのでリンクを切る
    • オリコンへのリンクでもデータ参照的なリンク先は色を変えて残す
    • ニューストピックス等は UserAgent により表示を変えてきて Chromium で悲しいので、PC向けの表示となる何か適当な UserAgent に書き換える

その他、粛々とサイト毎に対応。

しばらく使い続けてみて分かった事、幾つか

  • 設定ファイルでは行の途中でも単独の # 以降はコメント扱い
    • 某所でも軽くハマッたご様子なので一人じゃなかったと知って安心した?!
  • Firefox でhtmlソースを確認する時は注意、GoogleChrome などで別途確認も
    • Firefox ではスクリプト部分が展開されたような状態になる場合があって、気がつかずに「本来そこに無いもの」へフィルタをかけようとして上手く行かない罠に落ちた
  • AutoPager / AutoPatchWork を効率的に効かせたいのでなるべく縦方向を削ると快適
  • 不確定要素、誤爆しやすそうなモノは取りあえず目立たせて様子をみる
    • とりあえず<h1>など埋め込んで目立たせる、誤爆していなさそうなら普通に書き換える
  • 痕跡を残すのも方針としてアリ、単純ブロックや消すだけだと殺風景
    • google_ad_client や Amazon のアフィ
  • 時間が経って見直すと、何用のフィルタか分からないもの多数、誤爆時にもやっかい
    • メンテナンス考えてフィルタ書こうよ俺、バージョン管理しとけよ俺、という話

 

雑感など

フィルタを作成している時は楽しいというか、ささやかな達成感がある。
が、ふと、累積したフィルタをみると、何をやっているのかと虚しくならないではない……、率直に言えばかなり虚しい。

そもそも GoogleChrome でのメイリオ強制から使い始めたような Privoxy。
GoogleChrome でのフォント強制を

  1. UserScript にやらせる (タイムラグが微妙……)
  2. 拡張機能 Chrome Stylist (うっかり設定を消してしまって泣けた……)
  3. Chrome Stylist は自分にとって高機能すぎたので、適当な自前の拡張機能でCSSがっちり固定(柔軟性に欠けるけど……)

と変遷してきても Privoxy でのフォント強制指定は継続。


Google や Overture はさっくり消しても心が痛まないものの、Amazon は悩ましい。
リファラ削ったり Cookie を書き換えたりしているものの Amazon は目に入らなくなると殺風景。

ページの書き換えは情報の欠落の危うさが常に潜んでいるものの、味を知ってしまえば広告ブロック以上に止められない。
読みたくない記事を読まなくてすむ、は、子供じみてかなり後ろ向きな感じはあるものの、使ってみると快適というより実は”便利”な類、Stylish などには挫折したけれど。
某サイトでは特定の記者(寄稿者)だけ読まないようにしたくとも他の記事も埋もれるので断念。記事の文責、署名、タイトルに入れてくれれば互いに幸せになれるものを。

正規表現、どうにも自分のスキルの無さがにじみ出る。
『[^>]*>』の意図が半年以上経ってからようやく理解できたり、サンプルを丸ごと利用させてもらうだけで、参考にさせてもらっているサイトを読んでもあまりスキルの進歩が無い……。フィルタの記述に一貫性がないのも、その追加時期によるものの差。
『.*』という雑な一致は他のものに変えた方が良いと分かっていても当面放置。

Privoxy は参考にできるフィルタのサンプルはがググれどもほぼ全く出てこないと言っていい状況。
オミトロンはググればそれなりの規模のコミュニティとナレッジが出てきて羨ましい限り。
知りたいのは日本のWebサイトに対しての効率的なフィルタ、なので海外の情報は殆ど意味をなさない。
知りたくとも無いのは考えてみれば当たり前で、汎用フィルタやブロックはデフォルトでそれなりに効いている。そこから先を公開するとなると『各個人の日常的なWeb足跡』がかなりダダ漏れになるのだから望み薄……。


【2010/09/05】
記述ミスにより大幅なパフォーマンスダウンを引き起こしていた箇所を削除
user-EUC.filer の
</div>.*).*>(注目の情報)
となっていた部分が問題
当時このパターンが意図したものが今現在(2010/09/05)のYahooJapanにマッチする箇所が存続しているかは未検証

なお、既に古くて実効性のないフィルタが多数含まれているものの全体の更新は行っておらずこのエントリにあるものは "古い" ことにも注意

|

« エコポイント | トップページ | Firefox3.6 と AutoCopy と Copy Plain Text »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/60348/47392889

この記事へのトラックバック一覧です: Privoxy のフィルタ:

« エコポイント | トップページ | Firefox3.6 と AutoCopy と Copy Plain Text »