アメブロ更新チェックが WWWC で出来るようランダム変更される文字列等を Privoxy を使って消す例
更新チェッカー(wwwc)が誤作動する
更新確認を今でも WWWC でやってるんですが、コンテンツ内容(本文)以外の変更に反応してしまうケースがいろいろ出てきました。これを Privoxy で打ち消そうという企画
今回はテストケースとしてアメブロを取りあげます。アメブロでは解析用 img タグを埋め込んでいるようなので、ついでにそれも消してしまいましょう
誤作動原因:ヘッダー部の検索ボックスへ文字列の事前挿入
- ランダムに設定される文字列を削除することで WWWC の誤検出を防ぐことが出来る
Befor(勝手にスター・トレック挿入...) | After(勝手に挿入された部分だけ削除) |
---|---|
- フィルタ例(アクションファイルについては最後にまとめて紹介する)
################################################################################ # custom-attribute-remover1: Remove capricious attributes(Recursive a tag is NOT supported) # ameblo.jp # FILTER: custom-attribute-remover1 Remove capricious attributes(Recursive a tag is NOT supported) s@(<input\sname="q"\sclass="barKey"\stype="text"\svalue=")[^"]+("\smaxlength="\d+"\ssize="\d+"\saccesskey="\w"\s*/>) \ @$1$2\ @igsUx
- スペースを \s に置き換え
- 将来変更されるかもしれない数値部分を \d
- アクセスキー指定も同様に変更されるかもしれないから \w にしておく
- 変動部分の前後(変動しない部分)をカッコでくくって、それぞれ置換後に $1 $2 とする
アクセス解析用? img タグ削除
- img タグなのに style 属性で display:none されていて、ちょっと気味悪い
- 英数字の羅列はリロード毎に変化し、文字列長も可変のようだ
################################################################################ # stealth-img-killer: Remove stealth img tags by attributes(Recursive a tag is NOT supported) # ameblo.jp # FILTER: stealth-img-killer Remove stealth img tags by attributes(Recursive a tag is NOT supported) s@<img\s[^>]*( \ src="http://act\.ameba\.jp/blog/\w+"\sstyle="display:none" | \ ____ending____dammy____condition____ \ )([^/]?[^>])*(?:/> | >[^<]*</img[^>]*>) \ @\ @igsUx
- 最初のカッコ内で削除する img タグの属性を指定する
- 追加可能(| \ 忘れずに)
Flash もランダム生成しているようなので削除(2009-06-01 追加)
- 最初はタグだけ残そうかと思ったが id がブレるので消すように変更した(2009-06-02 00:50 微修正)
################################################################################ # custom-elements-remover8: Remove set of Elements # ameblo.jp # FILTER: custom-elements-remover8 Remove set of Elements s@<li\sid="barPrF?">.*</li> \ @\ @igsUx
アクションファイル設定
- つくったフィルターとその適用ドメインを指定
################################################## # アメブロ用 ### # ホスト名を省略する場合、最初にピリオドを指定 ### # { \ +filter{stealth-img-killer} \ +filter{custom-attribute-remover1} \ +filter{custom-elements-remover8} \ } ameblo.jp
ここまでしてやる必要は...
ないかも