以下の広告を削除するProxomitron用フィルタを作成してみましょう。
Webページサンプルデジャブ…?
ま、まぁ、気にせず作業に取りかかりましょう。
[右クリック -> 画像情報を表示] (IEなら [プロパティ] が該当します) で画像の情報を参照して下さい。
「アドレス」をクリップボードへコピーします。(コピーするアドレスは1つでOKです)
次に、htmlソースをテキストエディタで開きます。
何も考えずに、「Webページサンプル」の灰色の部分で [右クリック -> ソースの表示] でソースを開いてみてください。
<divstyle='padding: 10px'><ahref='http://sample.adserver.co.jp/'><imgwidth='512'height='64'src='./ad1.png'alt='ad1'/></a><br/><ahref='http://test.adserver.co.jp/'><imgwidth='512'height='64'src='./ad2.png'alt='ad2'/></a></div>
「先にコピーした画像のURI」があることから、広告がある事は間違いありませんが、あまりにもhtmlソースが小さいですね。
これは、フィルタ作りになれた人でも陥りやすい罠です。
ブラウザの [表示 -> ソースの表示] でhtmlソースを開いてください。
今度はそれらしき長いhtmlソースが出てきましたね。
次に、"Webページサンプル" で検索して下さい。
以下のようなhtmlソースが見つかると思います。
Webページサンプル<iframestyle='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を入力> と書かれている欄に記述して、テストしてみてください。
テストで該当部分が削除されることを確かめてから、ブラウザでこのページを更新してください。
そろそろフィルタ作りにも慣れてきたんじゃないでしょうか。(^^;