2022年04月13日に初出の投稿

Last modified: 2022-04-13

添付画像

SingleFile is a Web Extension (and a CLI tool) compatible with Chrome, Firefox (Desktop and Mobile), Microsoft Edge, Vivaldi, Brave, Waterfox, Yandex browser, and Opera. It helps you to save a complete web page into a single HTML file.

SingleFile

先月の下旬から、Firefox の Scrapbook アドオンに替えて、この SingleFile という拡張機能を使ってウェブ・ページをローカルに保存している。ウェブ・ページをかなり再現性の高い状態で一つの HTML ファイルとして変換してしまうアドオンだ。画像ファイルすら base 64 で変換したインラインのシリアル・データとして埋め込んでいるため、HTML ファイルであるにも関わらず大半のメディアも表示できて良好だ。MathJax という JavaScript のライブラリで組んである数式も正しく表示している。そして、この SingleFile というアドオンあるいは拡張機能のいいところは、Chrome 拡張機能としても Firefox のアドオンとしても開発されているため、僕が使っている Google Chrome, Microsoft Edge, Mozilla Firefox そして Waterfox Classic という全てのブラウザで使えることだ。旧式の Firefox である Waterfox Classic でも使えるとは思わなかった。

とは言え、Scrapbook に比べて管理し運用するユーザとしての課題はいくつかある。まず、ウェブ・ページは個別の HTML ファイルとして保存されるだけなので、分類は手作業となる。管理するツールは自分でローカルのサーバで動くスクリプトを書くか、PDF やテキスト・ファイルなどをまとめて管理できるツールを導入する必要があろう(以前にキヤノンの DocuWorks がそういうソフトだと思って紹介したのだが、キヤノンの複合機というプラットフォームが前提の、かなり汎用性に欠けるアプリケーションらしいので、もう紹介しない)。もちろん、検索もテキスト・エディタでディレクトリを対象にして grep するか、これも自分でローカルのサーバ上で動作する(実質的には grep と同じことだが)インターフェイスを開発するか、その手の既製品を購入しなければいけないだろう。Windows Search なんて使ってはいられない。そして、この検索については、僕は自力でインターフェイスを作ろうと思っている。そして、検索した結果としてウェブ・ページのリストを保存しておき、改めて検索しなおすたびに保存したリストを更新して、検索履歴も一つのインデックス・データとして分類の役に立てたい。

実は、RPA が流行するよりも10年以上は前から Python で書かれた検索ロボットや自動スクレイピングの(リンクを辿って次々とページをダウンロードする)ツールはあるので、ローカルのサーバでウェブ・ページを探索させてリソースとしてかき集めてくるなんて仕組みは使っていたことがあるのだ。しかし、スクレイピングは使い方を間違えると「岡崎市立中央図書館事件」のように相手のサーバが仕様なり運用なりの事情で貧弱だと「攻撃」と見做される恐れがあるし、そもそも同一のサーバに対してリクエストを管理もせずに自動で繰り返し送るものではないだろう。そういうことで、使うのは止めていたのであった。たとえば、"python" というキーワードだけで検索して出てきたページにロボットでアクセスさせて、そこで取得したリンク情報にまたアクセスさせて・・・ということを自動処理で実行させると、1日ほど放置しているだけでローカルのストレージ(当時はせいぜい 200 GB もあれば大容量の HDD だった)を半分近くも使ってしまう。リンク情報と HTML ファイルをダウンロードするだけだから、個々のページの容量は平均してせいぜい 100 kB ていどのものだが、リンクを自動で辿らせて続々とダウンロードさせると、HDD の容量なんてたちどころになくなってしまう。個人で Google のボットが実行しているインデックス作業をやっているのと同じなのだから、利用している帯域に大きな差があったとしても、原理的に Google と同じことをやっているわけなので、取り込むべき対象のページに違いは殆どなく、続々とファイルが溜まっていくことに違いはない。

もし、RPA と SigleFile を導入したブラウザを使ってウェブ・ページを自動処理で次々とローカルに保存していったらどうだろうか。いま僕が使っている NURO の帯域なり、それからマシンのスペックから考えて、自動処理を始めたら以前と同じようにローカルのストレージの容量(少なくとも 1 TB に近い余裕はある)は瞬く間に使い尽くされてしまうだろう。なので、インデックスしたリンク情報だけを保存して、ウェブ・ページのペイロードは無視するということにしておけばいいのかもしれない。しかし、それはつまりウェブ・ページのキャッシュをしないというだけで、ローカルに検索エンジンのインデックス・ストレージを再現するのと同じではないのか。これはこれで何だか無駄なことに思える。ペイロードとして実際のウェブ・ページというコンテンツをローカルに保存すること(そうすることで、オリジナルが消失したり移転したり改変されても後から保存した当時の内容を利用できる)が趣旨なのだから。

  1. もっと新しいノート <<
  2. >> もっと古いノート

冒頭に戻る


※ 以下の SNS 共有ボタンは JavaScript を使っておらず、ボタンを押すまでは SNS サイトと全く通信しません。

Twitter Facebook