Yahoo のリンクに仕込まれている無用なリダイレクトを Privoxy で回避する方法
Privoxy については各自調べてもらうとして…
こんなリダイレクト要らない
- http://rd.yahoo.co.jp/new/yservice/?http://www.yahoo.co.jp/
- http://rd.yahoo.co.jp/services/up/r_01/SIG=111q599cg/*http%3A//briefcase.yahoo.co.jp/
- http://ord.yahoo.co.jp/o/maps/search/SIG=1273r9ej3/EXP=1311673803;_ylt=A3Jvdk5LPC1Omw4BGXgU58J7;_ylu=X3oDMTBhMjU2bDd1BHZ0aWQDR1MwMDM-/*-http%3A//search.yahoo.co.jp/search?ei=UTF-8&p=adblock
- http://ord.yahoo.co.jp/o/chiebukuro/SIG=12nil9l49/EXP=1311673801;_ylt=A3JvdlJJPC1ObYEADX9NY.B7;_ylu=X3oDMTBhMTlnMDUzBHZ0aWQDS1MwMDM-/*-http%3A//detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1416544754
- http://ord.yahoo.co.jp/o/image/SIG=12tg5g385/EXP=1311673798;_ylt=A3JvdlBFPC1OGQwAn36U3uV7/*-http%3A//image-search.yahoo.co.jp/detail?p=adblock&rkf=1&ib=1&ktot=0&dtot=0
- http://rd.yahoo.co.jp/search/promo/P3/shinsai/*http://shinsai.yahoo.jp
何でリダイレクタを噛ませるのか
- ユーザーの利用動向が知りたいから(トラッキング手法の1つ)
フィルタ(*.filter)
# yahoo-redirect-cleaner: Clean urls linking to Yahoo redirector
FILTER: yahoo-redirect-cleaner Clean urls linking to Yahoo redirector
s@(]*href\s*=\s*["']) \
https?://(?:\w*rd|wrs\.search)\.yahoo\.co\.jp/[^*?]+[*?]+-?(https?)(?:%3A|:)(//[^"']+) \
(["'][^>]*>.*]*>) \
@$1$2:$3$4 \
@igsUx
- HTML を sed で置換してると考えるとわかりやすい
- アットマーク(@)は通常の正規表現リテラルのスラッシュ(/)の代わりに使っています(エスケープ面倒なので)
- 見慣れない正規表現のオプション(英語マニュアルの該当箇所)
- U:ungreedy matching
- x:空白無視(代わりに \s を使う)
アクション(*.action)
# yahoo.co.jp
# URL をクリーンアップしてリダイレクタを排除
{ \
+filter{yahoo-redirect-cleaner} \
}
.yahoo.co.jp
- フィルタ対象ドメインを指定
- 先頭のドット(.)は「サブドメインを含める」の意
ユーザースクリプト(Greasemonkey、Scriptish)でも同じことができる
- http://userscripts.org/scripts/show/1183 これは yahoo.com 用だからちょっと改造して…(続きはヨロシク)