Proxomitron(通称ぷろろん、他の呼び名「おみとろん」などの方がメジャーなのかも)という、 Windows用のローカルプロクシがあります。 色々な意味で面白いので、紹介するページを作ってみます。
このソフト、検索すると胡散臭いコミュニティの人が使ってることが多いみたいですけど、 ブラウザの挙動に不満を持つ全て人に有用なソフトなので、 騙されたと思って使ってみてください。
筆者は、このソフトのおかげでGoogleを1.28倍便利に使えるようになった気がします。
追記:しばらくメンテしてなかったら、googleのcache関係のは全部古くなっちゃいました。 そもそもGoogle-cache non-jaの問題は解決してるしね。 随時やるよりも、bookmarkletで適宜やった方が向いているものもありそうです。
ダウンロードしてください。 前バージョンのNaoko-3(バージョンナンバーです)はイマイチですので、 Naoko-4 (ついにβが取れた)を落として下さい。 以下の記述は全部 Naoko-4 ( beta-five 以降 ) が前提です。
昔のバージョンでは、 インストーラ付きバージョンは動かないこともあったみたいなので、 zip なブツを Program Files にぶちこんで使うほうがいいかも。
落としてきて、筆者がしたことは次のとおりです。
Listsディレクトリの下には、 便利なルールのリストファイルが転がってます。これの解説を。
Proxomitronを通すとうまく動かないようなサイト/ページがあった場合、 まずは「Bypass」ボタンを試してみるといい。 これを押すと、Proxomitronが一切フィルターをかけないようになる。 これで今度は見えるようであれば、 Bypass List.txtに次のように追記してやれば、 そのURLに対してだけはBypassモードでアクセスするようになる。 本当は原因追及して余計なフィルタだけ外すべきなのだが、 それが面倒ならこれでOKだろう。
[^/]++hnw.jp/documents/
あるURL以下は絶対に見ない、というものがある場合は URL Killfile.txtに次のように追記してやればOK。 このリストは「URL-Killer: kill-a-URL (out)」で使われている。
[^/]++.yimg.jp/adv/
「Content-Type: Fix MIME types (In)」というルールファイルで、 Webサーバでうまく設定されてないファイルのMIME typeを、 拡張子によって変更することができる。 例えば動画ファイルをtext/plainなどと返すような設定のサーバに対しては、 MIME Fix List.txtに次のように追記してやればOK。
asf $SET(0=video/x-ms-asf) asx $SET(0=video/x-ms-asf) avi $SET(0=video/msvideo) wmv $SET(0=video/x-ms-wmv) wvx $SET(0=video/x-ms-wvx)
ぷろろんを少し使ってみればすぐ気づくと思いますが、 ぷろろんのマッチングルールの記述方法はかなりいかれています。 UNIX の正規表現とも DOS のワイルドカードともつかない奇怪な表現な上に、 マニュアルに書いてある情報量は足りなさすぎるので、 ストレスたまりまくりです。
UNIX ( 特に Perl ) の正規表現に慣れた人が困惑するであろう点を列挙していきます。
また、Web Page FilterのBounds Matchでのマッチングは、Matching Expressionを見ないで行われるので、必要十分な表現を書く必要があります。
基本的に、いわゆる正規表現より能力は低いようです。 好意的に見れば、 性能を考えてわざとバックトラックが起こらないように設計してあるってことかも。
以下、便利なルールの紹介です。適当にdefault.cfgに追記してみてください。
あるページに対応するGoogleのキャッシュにアクセスするのに、 http://cache/www.〜のような形式でアクセスします。
少なくともIE5の場合、 「ローカルアドレスにはプロクシサーバを使用しない」をオフにしないと、 cacheというサーバを探しにいくので注意しましょう。
[HTTP headers] In = FALSE Out = TRUE Key = "URL: Google-cache alias" Match = "http://cache/\1" Replace = "$JUMP(http://www.google.com/search?q=cache:\1)"
Googleのキャッシュにアクセスするとき、 「このページはGoogleのキャッシュです」とかいうメッセージと 本文との文字コードが違ってるために、 本文の方がぐちゃぐちゃになって思わず呪いの言葉を吐くことがあるかと思いますが、 このGoogleのメッセージを英語にしてしまう試みです。
[HTTP headers] In = FALSE Out = TRUE Key = "Accept-Language: Google-cache non-ja" URL = "www.google.com/search?q=cache:" Match = "*" In = FALSE Out = TRUE Key = "URL: Google-cache non-ja" URL = "www.google.com/search?q=cache:" Match = "\1hl=ja" Replace = "$RDIR(\1hl=)" In = FALSE Out = TRUE Key = "Cookie: Google-cache non-ja" URL = "www.google.com/search?q=cache:" Match = "\1LD=ja\2" Replace = "\1LD=en\2"
GoogleのキャッシュのHTML中のリンクは全て実際のファイルへのリンクになりますが、 このうち、相対指定されている全てのリンクをGoogleのキャッシュへのリンクに書き換えます。 この結果、Googleのキャッシュを使ったネットサーフが可能になります。 落ちてるとか、死ぬほど遠いサイトを見るのに有効ですが、 不人気なサイト(例えばこのページ)だと 数ヶ月前の内容がキャッシュされてたりします(泣)。
問題点は色々あると思うので、ご意見お待ちしてます。
[Patterns] Name = "Google-cache link rel" Active = TRUE URL = "www.google.com/search?q=cache:" Bounds = "<a\s[^>]++href=*</a>" Limit = 900 Match = "<a\s\1href="([^/][^:'"]+)\2" \3>\4</a>" "$URL((www.google.com/search?q=cache:([^/]+/)+)\9[^/]+)" Replace = "<a \1href="http://\9\2" \3>\4</a>"
User-Agent を他のものにするというのはデフォルトで用意されてるんで、 全然珍しくもないんですが、 BlockList を使ってまずいサイトを外すことで常用してます。 ある意味かなり嫌がらせかも。
最近はブラウザ側で切り替えるようにしたので、あまり使ってません。
さすがにデフォルトでは用意されてないんで、 J-PHONE も作ってみました。
[HTTP headers] In = FALSE Out = TRUE Key = "User-Agent: DoCoMo" URL = "(^$LST(Deny503i))" Match = "*" Replace = "DoCoMo/1.0/D503i/c10" In = FALSE Out = TRUE Key = "User-Agent: J-PHONE" Match = "*" Replace = "J-PHONE/2.0/J-SH03"
ExciteやIBMの翻訳サービスを使って英語のページを翻訳するのに、 http://tr/www.〜のような形式でアクセスします。 名前やオプションは適当にしてください。 現在どっちをメインに使うかテスト中ですが、 exciteのを原文つきで表示するのが一番ましかな、という感触です。
どっちもGETでのアクセスを禁止されたらいきなり動かなくなるんだけどね…。
Google-cache alias同様、 「ローカルアドレスにはプロクシサーバを使用しない」をオフにしましょう。
[HTTP headers] In = FALSE Out = TRUE Key = "URL: (tr) Excite Translator alias" Match = "http://tr/\1" Replace = "$JUMP(http://www.excite.co.jp/world/url/?wb_lp=ENJA&wb_dis=3&wb_url=http://\1)" In = FALSE Out = TRUE Key = "URL: (tr2) IBM Translator alias" Match = "http://tr2/\1" Replace = "$JUMP(http://demo.alphaworks.ibm.com/cgi-bin/mtconnect?lang=jp&text=http://\1)"
2chでリンクを書くと、なぜか ime.nu ドメインのページを1枚かまされて、 次のページへGO!とか言われますね。 Refererを隠すっていう目的なんでしょうけど、あれ、とってもうざいですね。 ごちゃごちゃ言わんとはよ次のページ見せんかーい、 という短気なあなたも今日から安心。 ぷろろんが何とかします。
[HTTP headers] In = FALSE Out = TRUE Key = "URL: ime.nu Redirector (Out)" Match = "http://(ime\.nu|pinktower\.com)/\1" Replace = "$JUMP(http://\1)"
日本語の資料は少ないっすね…。
$Date: 2003-08-24 17:43:16 $