ウェブページから要素を削除するFirefox拡張

 記事の真ん中に表示される巨大な画像広告にいらいらすることはないだろうか。あるいはレビュー記事の中の数多くの画像や、掲示板のユーザアイコンを見るために帯域を浪費したくないと思ったことはないだろうか。ウェブページ内の任意の要素をウェブページから消し去るFirefoxのRIP拡張を使えば、ワンクリックでそれらを永久に削除することができる。

 RIP(Remove It Permanently)は、Nuke AnythingAdblockという2つの人気の高いFirefox拡張をヒントにして生まれた。Nuke Anythingは、ウェブページをプリンタフレンドリにするためにページ内の要素を削除することを目的として作られた拡張だが、Nuke Anythingでは削除するべき要素を記憶しておくことができない。またAdblockは画像広告の削除に特化した拡張であり、RIPの方が広告以外のものを含めさまざまな要素を削除することができる。

 RIPでは画像広告の他にも、テキスト広告やテーブル(表)や著作権表示などのテキスト要素さえも削除することができる。またRIP拡張の最大の特長は、削除したコンテンツがあった場所が空白のままにならないという点だ。例えば2つの段落の間にある水平バナーを削除すると、削除されたバナーがあった場所を詰めるようにしてページが表示されるようになる。

RIPを始める

 RIP拡張のインストールは他のFirefox拡張と同様に簡単だ。FirefoxプロジェクトのホームページでRIP拡張の最新版をクリックすると、FirefoxがRIP拡張をダウンロードして自動的にインストールする。その後ブラウザを再起動すると、FirefoxがRIP拡張を自動的に有効にしてくれる。

 RIP拡張をインストールすると、Firefoxで右クリックすると表示されるコンテクストメニューの中に、閲覧中のページに応じて最大3つの項目が追加されているはずだ。最初のオプション「Remove this permanently(この要素を永久に削除)」は、右クリック時にカーソルが指している要素を削除する。なおコンテクストメニューでこのオプションの上にマウスをかざすと、削除される要素が点滅する赤い四角でハイライトされる。

 2つめのオプションは、ページからIFrameを削除する。IFrameとは、ウェブページ内に外部サイトからの別のページを表示するための仕組みだ。IFrameは、多くのウェブサイトにおいて、外部ソースからの広告を表示するために使用されている。またIFrameにはページ全体用とは別にIFrame専用の水平/垂直のスクロールバーがあり、それが原因でページの移動がしにくくなることもある。閲覧中のページ内のIFrameが表示しているコンテンツを削除しても差し障りがない場合、RIPを使用するとIFrameを簡単に削除することができる。IFrame上にカーソルを移動して、「Remove IFrame permanently(IFrameを永久に削除)」を選択するだけだ。

 以上の方法を用いると、ほとんどの場合に不必要なコンテンツを取り去ることができるが、RIPはさらに高度なオプションも提供している。それらの高度なオプションは、コンテクストメニューの3つめのオプションである「RIP Advanced(高度なRIP)」のサブメニューの中にある。

 RIP Advanced(高度なRIP)には、削除の適用範囲を調整することができるオプションが用意されている。デフォルトのオプションでは、カーソルが指しているハイライトされた要素が削除されるのは閲覧中のページからだけだが、閲覧中のサイトの各ページが共通のテンプレートに基づいていて本質的に類似している場合には、その要素をすべてのページから削除することもできる。この操作を行なうためには、削除する領域を選択した後に「Remove this permanently(この要素を永久に削除)」ではなく「RIP Advanced(高度なRIP)→Remove from all similar pages(すべての類似ページから削除)」オプションをクリックする。

 以上のような「閲覧中のページ」や「すべての類似ページ」から要素を削除するオプションの他にも、「ウェブサイト全体」からや「ドメイン全体」から要素を削除するためのオプションがある。この2つのオプションは、いらいらする巨大な画像広告を削除する際に役立つ。

 どこから要素を削除するのかを制御するための上記の4つのオプションを選んだ後は、類似要素のすべてを削除するかどうかなどのオプションを選ぶことになる。なお、類似要素を見つけるためにRIPでは、その要素を定義しているHTMLコードを記録している。

 選択中の要素に類似した全要素を削除するオプションのオプション名の隣には、要素を定義しているHTMLコードも表示される。各要素は、例えばテーブルの中にある <td> タグで定義された単純なセルや、<h2> で定義された見出しのテキストである場合もある。このオプション名の上にマウスをかざすと、削除の対象となる要素のすべてが、点滅する赤い四角でハイライトされる。

 削除したい要素が、例えばテーブル内のセルのように、より大きな要素の一部分である場合について考えてみよう。先に示したオプションを使うと、テーブル内外のすべてのセルが削除されてしまう。しかし特定のテーブル内のセルだけを削除したいという場合には、各セルを一つ一つ削除していくか、または試行錯誤しながら削除したいテーブルの<table>タグを探し出す必要があるだろう。これでは手間がかかりすぎるので、RIPでは、選択した要素の親要素を削除するオプションが用意されている。この場合、テーブルの中のどれでも一要素を選択して「Parent item only(親要素のみ)」オプションを実行すると、当該テーブルとその中のすべてのセルが削除され、その他のテーブルとその中のセルはそのままになる。

 親要素を一つ削除することができるということは、当然、類似するすべての親要素を削除することもできる。繰り返しになるが、RIPは、選択した要素の親要素のタイプを認識することができるため、例えば同じCSSクラス属性で定義されたテーブルなどをまとめて一度で削除することができる。この「All similar parent items(すべての類似の親要素)」オプションでは、すべての親要素に共通のHTMLタグも表示される。

削除した要素を復活させる

 一つ以上の要素を削除したページには、Firefoxウィンドウの右下端にRIP墓石アイコンが表示される。このアイコンにマウスをかざすと、そのページ内で削除されている要素の数が表示される。

 ページを元の状態に戻すのは非常に簡単だ。要素を削除すると、コンテクストメニューの中に項目が追加されることが分かるはずだ。このときに追加される「Undo last RIP(最新のRIPを元に戻す)」という項目によって、まさにその項目に書かれている通りのことを行なうことができる。つまり要素を間違えて削除してしまったり、要素を削除した後にページの動作がおかしくなってしまった場合などには、このオプションを利用して元に戻すことができる。このオプションの特長は、RIPを適用したすべての要素を追跡していてスタックのような仕組みになっているということだ。したがって削除した要素のすべてが元に戻るまで、アンドゥし続けることができる。

 一方、削除した全要素を一時的に元に戻してページを本来の状態にしたい場合は、墓石アイコンを右クリックして「Display all hidden items(非表示の要素をすべて表示)」を選択すると、ページを次回のリロード時まで本来の状態に戻すことができる。また、一時的でなくそれ以降もずっとページを本来の状態に戻しておきたい場合には、墓石アイコンを右クリックして「Don’t rip this page(このページをRIPしない)」を選択すると、そのページのRIPが無効になる。とは言えコンテクストメニューのオプションはすぐに表示できるため、新たに要素を削除しさえすれば、再びRIPが有効になる。

RIPのインポート/エクスポート

 RIPを使用してわずらわしい広告やその他の要素をウェブサイトから削除していくと、RIPのレポジトリが構築されていく。そのようなレポジトリは、真のオープンソース精神にのっとって、RIP wiki上で仲間のRIPユーザと共有することが推奨されている。なおRIP wikiには現時点でもかなり多くのRIPが提供されている。

 自分のRIPレポジトリにアクセスするには、墓石アイコンをクリックするか、またはFirefoxの「Tools(ツール)→RIP Options(RIPオプション)」を実行する。RIP Options(RIPオプション)の画面は2つの領域に分かれていて、左側には自分のその時点のRIP(コンテンツを削除したページ)のリストが表示される。右側には、左側の各RIPをクリックすると、コンテンツを削除したサイトのURLなど、そのRIPに関する詳細情報がいくつか表示される。また、RIP拡張が削除するべき要素を見つけるために使用する、そのRIPのXPathクエリも表示される。

 RIPをエクスポートするためには、RIPを選択して、左側にあるExport RIP(RIPをエクスポートする)ボタンをクリックする。次にRIPファイルの保存先を選択してから、(RIP wikiの手順に従って)RIP wikiにRIPをアップロードする。

 一方RIPをwikiからインポートするためには、まず希望するRIPを指定して、関連する .RIPファイルをダウンロードする。その後RIP Options(RIPオプション)画面でImport RIP(RIPをインポートする)ボタンをクリックし、ダウンロードしたファイルを指定すると、RIPが自分のRIPリストに追加されて有効になる。

 RIP拡張には定義済みのRIPがいくつか付属している。(なお、これらのRIPには .RIPファイルが存在しない。)もっと多くのRIPを追加するためには、一つずつ、wikiから新たなXPathクエリをコピーして、右側にあるAdd XPath(XPathの追加)ボタンをクリックし、クエリを貼り付けると良い。

 RIP Options(RIPオプション)画面には、Preferences(設定)タブもあり、右クリックで表示されるコンテクストメニューから特定のオプション(「Undo last RIP(最新のRIPを元に戻す)」など)を削除するなどカスタマイズすることができる。またRIPを適用する要素を示すための点滅する四角の色や動作を変更することもできる。

まとめ

 RIP拡張は、Firefoxの役立つアドオンだ。わずらわしい広告を削除するだけでなく、ユーザアイコンや重複したテキスト要素などの不必要な要素も削除することができるので、Adblockを補完する存在となっている。また、すばやくアクセスできる右クリックのコンテクストメニュー内にすべてのオプションが含まれているので、使うのも楽だ。RIPを使うと、ウェブページの見掛けを柔軟に変更することができ、また削除のための手続きを繰り返し行なう必要がない。

NewsForgeでは毎週月曜日に異なる拡張/プラグイン/アドオンを紹介している。使用しているツールの紹介とその効果、そして上手に使いこなすためのヒントなどについて1,000ワード以下の記事を執筆していただければ、採用された方にはもれなく100ドルをお支払いする。なお、同じテーマがすでに最近取り上げられていたり掲載予定になっていないか、まずは確認のメールを送ってきてほしい。

NewsForge.com 原文