プロセルピナ
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エレメント) を削除します。

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

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

 

削除範囲の指定 (フルターゲットとコンテントターゲット)


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

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

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

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

 

ターゲットの指定 (キーワードモードとアトリビュートモード)


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

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

 

「!DIVコマンド」の書式


コマンドは、
  フィルタ種別識別子    !DIV 
  ホスト指定パラメータ   TargetHost    (詳細)
  ターゲット指定パラメータ
の3つのパートで構成されます。

!DIVコマンドの場合、フィルタ種別識別子は !DIV の文字列になります。

ターゲット指定パラメータ には、例えば、 class:^Hoge などの文字列が指定されます。

キーワードモード
キーワードモードの場合、ターゲット指定パラメータはキーワード部のみ、またはキーワード部を含む複数のパートから構成されます。 それらは、 エレメント指定部(♉)、 キーワード指定部、 置換文字列指定部(♐»»)、 パス指定部(¶¶¶) の4つのパートです。
キーワード指定部は必須パートです。その他のパートは必要に応じて指定するオプションです。

アトリビュートモード
アトリビュートモードの場合、ターゲット指定パラメータは常に複数のパートから構成されます。 それらは、 エレメント指定部(♉)、 アトリビュート指定部、 アトリビュート値指定部、 絞込みキーワード部(♎♎)、 置換文字列指定部(♐»»)、 パス指定部(¶¶¶) のパートです。
このうち、 アトリビュート指定部とアトリビュート値指定部は必須パートです。その他のパートは必要に応じて指定するオプションです。
例えばターゲット指定パラメータが、 class:^Hoge の場合はアトリビュート指定部が class 、アトリビュート値指定部が ^Hoge です。

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 


記号 を使って、 対象となるエレメントを DIV以外のものに変更することができます。

[アトリビュートモード] ♎♎記号 を使って、 対象の絞込み(キーワードによる絞込み)をすることができます。

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

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

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

 

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


次の例では、.example.com のサーバにあるページから、class に adv_section が指定されているDIV要素を全て削除します。



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

HTMLソースコードの例

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


 

アトリビュート値の比較モード (アトリビュートモード)


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

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


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

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

後方一致】  ClassNameIdName などの アトリビュート値指定部 の先頭に  $ 記号 を付与した場合は、指定した文字列で終了する全てのアトリビュート値が対象になります。
次の例では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アトリビュートに指定された値に _banner_ を含むDIV要素は 全て削除します。


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

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


アトリビュート値の比較モード 日本語

アトリビュートがclassやidの場合はASCIIコードだけで記述されますが、 summaryアトリビュートの場合はアトリビュート値に日本語が含まれる場合があります。
  summary:*コメント

ソースコードがUTF-8エンコードの場合はこれでも問題ありませんが、それ以外のエンコードを使用している場合は、 そのエンコードを指定する必要があります。
例えば、エンコードが Shift-JIS の場合、
  >>>Shift_JIS:summary:*コメント
のような記述でエンコードを指定します。

「summary:*コメント」の前に 「>>>Shift_JIS:」のエンコード指定を付与することに注意してください。
(「*コメント」の文字列のエンコード指定ですが、 「*コメント」の直前に「>>>Shift_JIS:」を記述するのではありません)。

 

コンテントターゲット (アトリビュートモード)


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

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



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

HTMLソースコードの例 (www2.example.com)

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


 

キーワードモードの例


次の例では、.example.com のサイトから応答された情報から、
  <span id="x1">Hello!
の文字列を内部に含むDIV要素を削除します。
上記 3-a: の書式の、 Marker に相当する部分が、 <span id="x1">Hello! になります。
(この部分が UTF-8 に変換できる文字列でない場合は、 >>>ISO-2022-JP: のような形式でエンコードを指定します)



例えば、つぎのような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バイトになることに注意してください。

日本語キーワード

次の例は、www.example.com など、ホストが .example.com のパターンで一致するサイトのページから
  <h3>注目の特集</h3>
の文字列を内部に含むDIV要素を削除します。
ページが euc-jp のcharsetでエンコードされている例です。



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


 

複雑なターゲット指定パラメータの例


複数のオプションパートが指定されたアトリビュートモードのターゲット指定パラメータを、『プロセルピナ』が処理する順序を示します。
例として、ターゲット指定パラメータが次のような場合を考えます。

  >>>EUC-JP:summary:広告♐»»>>>EUC-JP:消した!¶¶¶/login.pl

この場合、パス指定部の、「¶¶¶/login.pl」がまず最初に切り離されます。
(パス指定については後述)

  >>>EUC-JP:summary:広告♐»»>>>EUC-JP:消した!

次に置換文字列指定部の「♐»»>>>EUC-JP:消した!」が切り離されます。
これは、削除した範囲を文字列「消した!」に置換する指定ですが、 その文字列のエンコードを「>>>EUC-JP:」でEUC-JPに指定しています。
(置換指定については後述)

  >>>EUC-JP:summary:広告

これで、summaryに「広告」が指定されているDIV要素を対象にしていることになります。

次の例は、「URLが http://www.example.com/ad/~ のページ(エンコードはEUC-JP)において、 summaryアトリビュートに【広告】が指定されているsideBoxエレメントのうち、そのエレメント内に【不動産】の文字列を含むものを削除して、 その位置に削除済と記述する」 というものです。




 

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


♐»» の識別子を使って、置換文字列を指定することができます。
指定した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 の画像を挿入します。



 

「♎♎」記号による対象の絞込み (アトリビュートモード)


削除したいdivエレメントと、残しておきたいdivエレメントとで、同じアトリビュート値が指定されていて区別ができない場合でも、 ♎♎記号 を使ったキーワード指定をすることによって対象の絞込みを行い、区別をつけることができます。

例えば、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:【広告】
と指定します。

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

 

「♉」記号によるターゲットエレメントの変更


ターゲット指定パラメータの先頭に による指定を置くことで、 対象となるエレメントをDIV以外のものに変更できます。

次の例は、sectionというエレメントの、idアトリビュートに Ad_ から開始される文字列が指定されているものを 削除するものです。



削除対象となるエレメントは、次のようなものになります。



このオプションはキーワードモードでも使用できます。
次の例は、EUC-JPエンコードされているwww.example.comのサイトのページにおいて、 sideBoxというエレメントのうち、【広告】 という文字列が含まれるものを削除するものです。



削除対象となるエレメントは、次のようなものになります。



[BACK]
プロセルピナ