pulpdust.org からのお年玉…ていうかたまたまこの時期にかかっただけですが、シェルスクリプト htslurp.sh を公開します。htslurp.sh は複数のウェブページをダウンロード、結合して出力するシェルスクリプトです。
 これはなんに使うかというと、例えば Google Reader とかでいろんなウェブサイトのフィードを見ながら「あー、こことここだけフィードに全文載ってないな。いちいち元記事開くのめんどくさ」などと思ったときに、とりあえず記事の URL だけコピーしておき、このスクリプトで一つの HTML ファイルにまとめて一気に縦覧するということができます。他にも検索結果の中からいくつかのページを選んで手許に保存しておくとか、すぐに削除されてしまう新聞社サイトの記事を取っておくのにも好適です。

 このシェルスクリプトの一次配布元は『htslurp.sh(Hypertext Slurping Script)- Arena PULPA::pulpdust.org サテライト』です。そこからダウンロードしてください。
 以下、このスクリプトについて説明を述べます。


htslurp.sh を使うための準備

 シェルスクリプトを実行できる環境さえあればパソコンや OS の種類は問いません。一般的な GNU/Linux ディストリビューションであれば標準のインストールで必要なものがほぼそろうと思いますが、wget と nkf は追加しなければならないかもしれません。Microsoft Windows では Cygwin 環境下でたぶん動くんじゃないかと思います。Apple Mac OS X では、MacPorts をセットアップし、port コマンドで wget、nkf に加え gsed(GNU SED)を導入してください。あるいは、VMWare Fusion に Ubuntu Linux を入れてしまった方が手っ取り早いかもしれません。

使い方

 htslurp.sh をダウンロードして適当な場所に保存します。それから、ターミナルエミュレータを開き(例:「スタート/プログラム/Cygwin/Cygwin Bash Shell」あるいは「アプリケーション/ユーティリティ/ターミナル」など)、ダウンロードしたいウェブページの URL を引数として htslurp.sh を実行してください。

使用例その一(URL を直接入力する)
$ htslurp.sh http://www.google.com/ http://www.yahoo.com/

この例では Google と Yahoo! のトップページの内容を単一の HTML データに結合し、ターミナル上に表示します。

使用例その二(テキストファイルに記述した URL を渡し、結果を HTML ファイルに保存する)
$ htslurp.sh `cat srclist.txt` > dstfile.html

この例では、srclist.txt はウェブページの URL を改行区切りで列記したテキストファイルです。cat コマンドでその内容を htslurp.sh に渡し、リダイレクト(>)で結果を dstfile.html に保存しています。dstfile.html は取得したウェブページの内容が結合された HTML ファイルになります。

使用例その三(生成した内容から文書を抽出してテキストファイルに保存する)
$ htslurp.sh `cat srclist.txt` | w3m -T text/html -dump > dstfile.txt

 なお、htslurp.sh は指定したウェブページに貼り付けられた画像ファイルなどはダウンロードしません。それらのファイルごと保存しておきたい場合は、生成・保存した HTML ファイル(上記例における「dstfile.html」)をウェブブラウザで開き、Mozilla Firefox なら[ファイル]-[名前を付けてページを保存]から「Web ページ、完全」、あるいは Apple Safari の webarchive 形式、Microsoft Internet Explorer の MHT 形式などで保存し直してください。
 MHT や webarchive 形式は関連するファイルをまとめて一つのファイルに保存しますが、これは特殊な形式であることに注意してください。Firefox の保存形式ではファイルは一般的な形式のまま保存されるため、個別の取り扱いが容易で、長期の保存に適しています。

 また、htslurp.sh はもとの HTML に含まれていたページの「見た目」を定義する情報をほとんど削除します。その代わり、生成・保存した HTML ファイルと同じディレクトリに slurp.css という名前のスタイルシートがあれば読み込むようになっています。上記一次配布元に最低限の内容を持つ slurp.css を用意しています。これを生成・保存した HTML ファイルと同じディレクトリにおいてください。このスタイルシートの内容をお好みに編集することで、生成・保存した HTML 全体に統一的なスタイルを適用することが出来ます。

制限

 htslurp.sh は元のウェブページから javascript は削除します。これは、いくつものウェブページを結合すると、それをウェブブラウザで開くときにいくつもの javascript を一度に実行してのっぴきならなくなることを避けるためです。従って、ページの内容のうち javascript によって表示される部分は利用できません。

参考リンク