Wgetでオンライン保管資料をローカルコピーGeek to Live

del.icio.usなどのオンラインサービスを使ってクリッピングした情報を、自分のHDDにコピーし、オフライン時でも利用できるようにする方法を解説。(Lifehacker)

» 2006年10月24日 01時37分 公開
[Gina Trapani,Lifehacker]
LifeHacker

 del.icio.usGoogle Notebookdiggといったオンラインサービスを使い、こつこつとWebページをブックマークし、クリッピングを進めてきた。こうしてWeb上に保管したデータは、ネットにつながってさえいればどんなコンピュータからでも利用できるという素晴らしさがある。だが、大容量HDDが安く買え、パワフルなデスクトップ検索が存在する今の時代、Web上に保管しているデータの複製を自分のPC上に置いておくというやり方もありなのではないか。ブックマークしたとき表示された内容で各Webページをコピーし、オフラインでも検索可能なリサーチアーカイブを作るのだ。

 筆者お気に入りのコマンドラインツール「Wget」を使えば、del.icio.usリンク集、digg、Google Notebookの公開ノートの内容を自動的に、また効率よく、自分のHDDにダウンロードできる。

Wget 101

 Wgetが初めてという人は、以前掲載したWgetチュートリアルに目を通してほしい(ITmediaによる、『コマンドライン未経験者のための「Wgetの使い方」』も参照のこと)。Wgetがどんな働きをするのか、どこでダウンロードできるか、またWgetのコマンドフォーマットについての多少の予備知識が得られるはずだ。

 Wgetに慣れたら、前に進もう。

del.icio.usブックマークのアーカイブ

 例えば、ソフトウェアの現状についてのプレゼンに向けて、del.icio.usブックマークの「software」タグを使って関連文献を集めているとしよう。http://del.icio.us/ginatrapani/softwareからリンクされた全ドキュメントをダウンロードするコマンドは下記のとおりだ(改行は取って入力する)。

wget -H -r --level=1 -k -p -erobots=off -np -N

--exclude-domains=del.icio.us,doubleclick.net

http://del.icio.us/ginatrapani/software


 実行方法:http://del.icio.us/ginatrapani/softwareの部分を修正して自分のdel.icio.usユーザー名と対象タグに変更する。「del.icio.us archive」という新ディレクトリを作り、そのディレクトリからコマンドラインで、修正したスクリプトを実行する(テキストファイルに上記のコマンドをコピー&ペーストし、必要な修正を加えた後で、Windowsユーザーなら.bat、Macユーザーなら.shとしてセーブし、スクリプトとして実行すれば、毎回長いコマンドを打ち込まなくてもよくてさらに便利だ)。コマンドを実行し終わると、del.icio.usリンク集のドメインと同じ名前のディレクトリが作られ、その中にファイルが保存されているはずだ。

 解説:上記はWgetに対して「http://del.icio.us/ginatrapani/softwareからリンクされた全ドキュメントを取得せよ」と伝えるコマンドだ。

  • -H

別ホストも対象にする――つまり、del.icio.usから他サイトへのリンクをすべてゲットせよ、という意味

  • -r

再帰的にダウンロードする。つまり指定したURLのWebページからリンクされているページも対象とし、さらにそのWebページに書かれているリンクも対象とする。デフォルトでは5回までリンクをたどる(深さ5)

  • --level=1

欲しいドキュメントからリンクされた、さらに先のドキュメントまでは再帰ダウンロード対象に含めないレベル

  • -k

リンクをローカルコピー間の相対リンクに変換する

  • -p

画像やそのほかの補助ファイルもダウンロードしてページを完全構築する

  • -erobots=off

robots.txtを無視してダウンロードする

  • -np

親ディレクトリ(つまりこの例ではginatrapaniの全ブックマーク)は対象外とする

  • -N

ダウンロード済みのものよりも新しいバージョンのファイルだけをダウンロードする

  • --exclude-domains=del.icio.us,doubleclick.net

del.icio.us内のほかのページへのリンクと、doubleclick.netにある広告サーバへのリンクを排除する(後者は広告をダウンロードしたくない場合)

 説明されてもよく分からないという人は、自分のdel.icio.usブックマークだけ指定して実行してみよう。きっとうまくいくはずだ。

 もう1つのやり方として、下記のコマンド(改行は取る)を使うと、単一のタグだけでなく、自分のdel.icio.usブックマークすべてをダウンロードの対象にすることができる。

wget -H -r --level=1 -k -p -erobots=off -np -N

--exclude-directories=ginatrapani

--exclude-domains=del.icio.us, doubleclick.net

http://del.icio.us/ginatrapani


 コマンド上の違いは「--exclude-directories=ginatrapani」のところだけ。これは不要なフォルダまでダウンロードさせないためだ。

誰かのdiggをアーカイブ

 ケビン・ローズ氏が集めた記事を全部アーカイブしたいとしよう。Wgetのコマンドはこんなふうになる(改行は取る)。

wget -H -r --level=1 -k -p -erobots=off -np -N

--exclude-domains=digg.com,doubleclick.net,doubleclick.com,fastclick.net,fmpub.net,tacoda.net,adbrite.com,sitemeter.com

http://digg.com/users/kevinrose/dugg


 最初に紹介したコマンドよりもさらに、排除する対象の広告サーバを増やし(自分のHDDをバナー広告画像でいっぱいにしないため)、kevinroseのduggページを指定している。

公開Google Notebookをアーカイブ

 Google Notebookは、Webページの一部をクリッピングしてオンラインでメモを付けるための優れた方法だ。そうやって作ったノートブックを公開することもできる。Web上の航空機産業についての引用文を集めた公開Google Notebookを、オフラインのときにも見られるよう、ローカルに保存したいとしよう。対象となるノートブックでWgetをポイントし、下記のコマンド(改行は取る)を使ってそのページをaviationquotes-notebook.htmlにセーブする。

wget -k -p -erobots=off -np -N -nd -O aviationquotes-notebook.html

http://www.google.com/notebook/public/18344006957932515597/BDSKUIgoQ9K_Emdkh


Webをローカルアーカイブする際のTIPS

 ダウンロードしたブックマークやWebクリップの内容を検索したいときは、Google DesktopかMac OS XのSpotlightを使う。本格的なリサーチャーで、Macを使う人は、ダウンロードしたドキュメントをDevonThinkに読み込んでもいい。

 一定期間を過ぎたダウンロードページを整理しよう。ケビンが過去2週間以内に集めた記事だけ読みたい場合は、HDDお掃除スクリプトを使ってダウンロードフォルダを整理し、古いファイルは削除する。

 Wgetによるダウンロードを、あらかじめ決めた時間に自動実行させるには、Windowsのタスク機能、またはMac OS XやLinuxのcronを使う。

 Wgetを日々の作業にうまく使う方法が理解できただろうか。今回紹介した方法について疑問があれば、Lifehacker.com上で記事にコメントを付けてほしい。

本稿筆者ジーナ・トラパーニはLifehackerのエディター。パーソナルデータの分散はキーラーアプリだと考えている。Lifehacker上で毎週水曜と金曜にGeek to Liveコラム(RSS)を連載中。



この記事は、Lifehackerの発行元である米Gawker Mediaの許可を得て、アイティメディア株式会社が翻訳したものです。翻訳責任はアイティメディアにあります。

注目のテーマ