以下の広告を削除するProxomitron用フィルタを作成してみましょう。
Webページサンプルデジャブ…?
ま、まぁ、気にせず作業に取りかかりましょう。
[右クリック -> 画像情報を表示] (IEなら [プロパティ] が該当します) で画像の情報を参照して下さい。
「アドレス」をクリップボードへコピーします。(コピーするアドレスは1つでOKです)
次に、htmlソースをテキストエディタで開きます。
何も考えずに、「Webページサンプル」の灰色の部分で [右クリック -> ソースの表示] でソースを開いてみてください。
<div
style=
'padding: 10px'
>
<a
href=
'http://sample.adserver.co.jp/'
>
<img
width=
'512'
height='64'
src='./ad1.png'
alt='ad1'
/>
</a>
<br
/
>
<a
href=
'http://test.adserver.co.jp/'
>
<img
width=
'512'
height='64'
src='./ad2.png'
alt='ad2'
/>
</a>
</div>
「先にコピーした画像のURI」があることから、広告がある事は間違いありませんが、あまりにもhtmlソースが小さいですね。
これは、フィルタ作りになれた人でも陥りやすい罠です。
ブラウザの [表示 -> ソースの表示] でhtmlソースを開いてください。
今度はそれらしき長いhtmlソースが出てきましたね。
次に、"Webページサンプル" で検索して下さい。
以下のようなhtmlソースが見つかると思います。
Webページサンプル<iframe
style=
'border-style: none; width: 100%; height: 170px'
frameborder='0'
scrolling='no'
src='../sample_ad/iframe_ad.html'
>
</iframe>
ここでiframe要素に注目して下さい。
iframe要素は宣言した場所にフレームを表示する要素です。
つまり、先程の短いhtmlソース(htmlソース1) はフレームで呼び出した「別のHTML文書」だったわけです。
フレームで呼び出したHTML文書の中の広告にマッチさせる手もありますが、フレームの呼び出しを許可する分、効率が悪くなります。
ここは、iframe要素にマッチさせてみましょう。
iframe要素から「ユニークな文字列」を探すと…、フレームのURIを示すsrc属性が良さそうですね。
今回は今までに学習した内容だけでフィルタを作成できるので、初めから完成品を記します。
[Patterns] Name = "Kill <iframe> ad" Active = TRUE URL = "$TYPE(htm)" Limit = 256 Match = "$NEST(<iframe\s[^>]++src=$AV(../sample_ad/iframe_ad.html),</iframe>)"
要領はアンカーの広告削除と同じなので、解らないところがありましたら、そちらを参考にして下さい。
それでは、最終チェックです。
広告を含むhtmlソース(htmlソース2) をテストウインドウの <テストするHTMLを入力> と書かれている欄に記述して、テストしてみてください。
テストで該当部分が削除されることを確かめてから、ブラウザでこのページを更新してください。
そろそろフィルタ作りにも慣れてきたんじゃないでしょうか。(^^;