プロセルピナ
Top Internet
Mail
Private
Proxy
Capture
Device
Download Config
and
Words
Online
Help
Online
Home
[BACK]
Top > PrivateProxy > AntiAd > AntiAdFilter > Format > ページ編集系

 
■ AntiAdフィルタ書式 (ページ編集系)
  !DIVコマンド
AntiAd Filter


!DIVコマンドは、 主にサイト個別フィルタで使用される、 「ページ編集系」のフィルタコマンドです。
 

!DIVコマンド 概要


Webページのソースコードから、 div要素(divエレメント) を削除します。
削除範囲には、divエレメントの、開始タグ先頭から終了タグ末尾までの、全てを削除する 「フルターゲット」 と、内容(Content、コンテント)だけを削除する 「コンテントターゲット」 の2種類があります。

ピンク色の背景の部分が、削除範囲となります。

フルターゲット:  <div> コンテント(内容) </div>

コンテントターゲット:  <div> コンテント(内容) </div>

【削除の判定】
指定したキーワードがコンテントに含まれるかどうかで削除の可否を判定する 「キーワードモード」 と、 開始タグのアトリビュートに指定されている値で判定する 「アトリビュートモード」 があります。
「アトリビュートモード」 の対象となるアトリビュートは、
  class
  id
  summary
  style
  classid (主に!OBJECTコマンドで使用)
  codebase (主に!OBJECTコマンドで使用)
  name
  type
  src
の9種類です。
それ以外のアトリビュートには対応していません。

「アトリビュートモード」においてのみ、 divエレメントに含まれるコンテント(content)部分のみを削除する 「コンテントターゲット」 の指定が可能です (「プロセルピナ」 version 1.06.03 以降) 。
この場合、開始タグ、終了タグはそのまま残り、タグで囲まれた内側部分のみが削除されます。

【置換操作】
「置換操作」を指定することができます。
これは、削除した後、その位置に代替の文字列を挿入する機能です (キーワードモードでは version 1.06.03 以降、 アトリビュートモードでは version 1.06.00 以降 のサポートです) 。
アトリビュートモードでコンテントターゲットを指定していた場合、 コンテント(内容) のみが置換されます。

【URLパス指定】
対象となるURLを プレフィクス(StartsWith) で指定することができます (キーワードモードでは version 1.06.03 以降、 アトリビュートモードでは version 1.06.00 以降 のサポートです) 。
これにより、同じサイトでも、ディレクトリやパスによって削除するかどうかを分けることができます。

 

「!DIVコマンド」の書式


フィルタ種別識別子は !DIV になります。

1: アトリビュートモード (classアトリビュート指定)
   !DIV   TargetHost   class:ClassName 

2: アトリビュートモード (idアトリビュート指定)
   !DIV   TargetHost   id:IdName 

3-a: キーワードモード
   !DIV   TargetHost   Marker 

3-b: キーワードモード
   !DIV   TargetHost   >>>MarkerEncodeType:Marker 

4: アトリビュートモード (classアトリビュート指定, コンテントターゲット)
   !DIV   TargetHost   class::ClassName 

5: アトリビュートモード (idアトリビュート指定, コンテントターゲット)
   !DIV   TargetHost   id::IdName 


♐»»記号 (置換記号) を使って、 置換文字列を指定することができます。

¶¶¶記号 を使って、 対象となるURLを プレフィクス(StartsWith)で指定することができます。

TargetHost で指定するホストの指定方法については、 ページ編集系コマンドでのホスト指定 を参照してください。

 

「!DIVコマンド」の例


例1: アトリビュートモード
  次の例では、.example.com のサーバにあるページ(応答された情報)から、
adv_section のclassが指定されているDIV要素を全て削除します。


adv_sectionのclassが指定されているDIV要素を削除

例えば、www.example.com にある次のようなページは、

HTMLソース: adv_sectionのdiv (www.example.com)

次のように編集されます。

編集後 HTMLソース: adv_sectionのdiv (www.example.com)



例2: アトリビュート値の比較モード
アトリビュート値の比較には、
  完全一致 … (Equals)
  前方一致 ^ 記号 (StartsWith)
  後方一致 $ 記号 (EndsWith)
  部分一致 * 記号 (IndexOf)
の4種類を指定できます。

前方一致】  ClassNameIdName などのアトリビュート値の先頭に  ^ 記号 を付与した場合は、指定した文字列で開始される全ての class/id/summary/style/classid/codebase/name/type/src が対象になります。
次の例ではDIV要素のclassアトリビュートに指定された値が adv_ で開始されるdivエレメントは全て削除します。


classアトリビュートの値が adv_ で開始されるdiv要素を削除

例えば、classアトリビュートの値に adv_section 、adv_hogeHoge 、adv_ 、adv_AREA などが指定されている divエレメント が削除されます。
adv_ で開始されない、 advSection 、 ADV_section 、 xx_adv_section などは削除されません。

後方一致】  ClassNameIdName などのアトリビュート値の先頭に  $ 記号 を付与した場合は、指定した文字列で終了する全ての class/id/summary/style/classid/codebase/name/type/src が対象になります。
次の例ではDIV要素のidアトリビュートに指定された値が _adv で終了するdivエレメントは全て削除します。


idアトリビュートの値が _adv で終了するdiv要素を削除

例えば、classアトリビュートの値に banner_adv 、BANNER_adv 、_adv 、 adv_adv などが指定されている divエレメント が削除されます。
_adv で終了されない、 Banneradv 、 banner_ADV 、 xx_adv_section などは削除されません。

部分一致】  ClassNameIdName などのアトリビュート値の先頭に  * 記号 を付与した場合は、指定した文字列を含む全ての class/id/summary/style/classid/codebase/name/type/src が対象になります。
次の例では classアトリビュートに指定された値に _banner_ を含むDIV要素は 全て削除します。


classアトリビュートの値に _banner_ を含むdiv要素を削除

例えば、classアトリビュートの値に _banner_adv 、ad_banner_1 、adv_banner_ 、 _banner_ などが指定されている divエレメント が削除されます。



例3: アトリビュートモード&コンテントターゲット
  アトリビュートモードにおいて、アトリビュート名とアトリビュート値の間に記述するコロンを、  ::  と2つ連続させた場合は、コンテントターゲットになります。

次の例では、.example.com のサーバにあるページ(応答された情報)から、
adv_section のidが指定されているDIV要素の、コンテント(内容)部分を全て削除します。


adv_sectionのidが指定されているDIV要素を削除

例えば、www2.example.com にある次のようなページは、

HTMLソース: adv_sectionのdiv (www2.example.com)

次のように編集されます。

編集後 HTMLソース: adv_sectionのdiv (www2.example.com)



例4: キーワードモード
  次の例では、.example.com のサイトから応答された情報から、
  <span id="x1">Hello!
の文字列を内部に含むDIV要素を削除します。
上記 3-a: の書式の、 Marker に相当する部分が、 <span id="x1">Hello! になります。
この部分は US-ASCII に変換できる文字列でなければなりません (US-ASCII以外の文字列の場合は次の 例5: を参照)。


特定の文字列を含むDIV要素を削除

例えば、つぎのようなHTMLソースの場合、削除範囲はピンクの部分です。

QQQ<div>ABC<span id="x1">Hello!</span><div>12345</div>ABC</div>QQQ

要素を削除は、ネストに対応しています。削除するdiv要素の内側に div要素があっても、正しく動作します。

Marker に改行文字を含ませる場合は、  \r (CR, 0x0d) および  \n (LF, 0x0a) で記述します。
EUC-JPの場合、改行は  \n  の1バイトのみ、 UTF-8などの場合は、  \r\n  の2バイトになることに注意してください。



例5: キーワードモード (日本語キーワード)
  次の例では、.example.com のサイトから応答された情報から、
  <h3>注目の特集</h3>
の文字列を内部に含むDIV要素を削除します。
文字列<h3>注目の特集</h3>MarkerEncodeTypeで指定したcharset(この例ではeuc-jp) でエンコードできなければなりません。
MarkerEncodeTypeにはWebページのcharsetを指定します。


<h3>注目の特集</h3> を含むDIV要素を削除

例えば次のようなDIVが削除されます。


 

「♐»»」記号による置換文字列の指定


♐»» の識別子を使って、置換文字列を指定することができます。
指定したDIV要素を削除した後、その位置に ♐»» の後に指定した文字列を挿入します。

この置換機能は、 アトリビュートモードでは、「プロセルピナ」 version 1.06.00 以降、 キーワードモードでは、「プロセルピナ」 version 1.06.03 以降 で使用できます。

次の例では、 adv_banner001 のような adv_ で開始されるidを持つ全てのDIV要素が、
  <div id="deleted">DELETED</div>
のDIV要素に置換されます。


アトリビュートモードの例

次の例では、UTF-8のエンコードで、
  【広告】
の文字列を内容にもつ全てのDIV要素が、
  <div id="deleted">DELETED</div>
のDIV要素に置換されます。


キーワードモードの例

♐»» の記号は、 記号 1つと、 »記号 2つの3文字です。
詳しくは 置換記号 ♐»» を参照してください。

♐»» 以降に指定する置換文字列の記述書式は ページ編集系コマンドでの文字列指定 を参照にしてください。

 

「¶¶¶」記号によるURLのパス指定


¶¶¶ の識別子を使って、対象となるURLを プレフィクス(StartsWith) で指定(限定)することができます。

この機能は、 アトリビュートモードでは、「プロセルピナ」 version 1.06.00 以降、 キーワードモードでは、「プロセルピナ」 version 1.06.03 以降 で使用できます。

次の例では、削除の対象となるURLを /adv/page で開始されるもののみに限定します。


アトリビュートモードの例

この例では、
  http://www.example.com/adv/pageContents.html
のようなURLのページから、classに sideBox の指定をもつDIV要素を全て削除します。
  http://www.example.com/pageContents.html
は対象外なので、ページ内に sideBox のclass指定をもつDIV要素があっても削除されません。

次の例は、キーワードモードの例です。


キーワードモードの例

EUC-JPのエンコードで、 ■ 広告特集 ■ の文字列を含むdiv要素を削除しますが、URLが http://www.example.com/adv/page で開始するページのみが対象となります。
http://www.example.com/adv/page/aaa.html や http://www.example.com/adv/page_index.html は対象となりますが、 http://www.example.com/adv/test/page_index.html は対象外です。

¶¶¶ は、 記号 の3連続です。
メタ定義文字変換では、
  [.||][.||][.||]
と記述して変換します。

¶¶¶ 以降に指定する置換文字列の記述書式は ページ編集系コマンドでの文字列指定 を参照にしてください。

URLパス指定は、置換機能と同時に指定することができます。
次の例では、.example.comの /adv/page で開始されるURLのページから、classに sideBox の指定をもつDIV要素を全て削除し、 その位置に dummy.gif の画像を挿入します。



 

「♎♎」記号による対象の絞込み


この機能のサポートは マクロヴァージョン20090119以降です。

削除したいdivエレメントと、残しておきたいdivエレメントとで、同じclass(または id、summary、style、classid、codebase、name、type、src) が指定されていて 区別ができない場合、 ♎♎記号 を使って、キーワードによる対象の絞込みができます。

例えば、idにHogeが指定されているdivエレメントで、その中(開始タグ直後から終了タグ直前まで)に Advertisement の文字列が含まれるものを削除したい場合、
  !DIV .example.com id:Hoge♎♎Advertisement
と指定します。

♎♎ は、 記号 の2連続です。
メタ定義文字変換では、
  [LIBRA][LIBRA]
または
  [Ω_][Ω_]
と記述して変換します。

♎♎ 以降に指定する置換文字列の記述書式は ページ編集系コマンドでの文字列指定 を参照にしてください。
例えば、classにsub_blockが指定されているdivエレメントで、その内容にEUC-JPで 【広告】 の文字列が含まれているものを削除するには、
  !DIV   .example.com   class:sub_block♎♎>>>euc-jp:【広告】
と指定します。

classにsub_blockが指定されていて、その内容にEUC-JPで 【広告】 の文字列が含まれているdivエレメントを全て
  <div>DELETED</div>
に置換するには、
  !DIV   .example.com   class:sub_block♎♎>>>euc-jp:【広告】♐»»<div>DELETED</div>
と指定します。

[BACK]
プロセルピナ