wget メモ

URL以下全ページの再帰ダウンロード。

$ wget -np -w 1 -P ~/Downloads -r -l0 -p -k -nv URL
  • 「-np」 親ディレクトリは対象としない
  • 「-w 1」 1秒のウェイト
  • 「-P ~/Downloads」 保存ディレクトリの指定
  • 「-r」 再帰的ダウンロード
  • 「-l0」 最大深度の指定(0は無限回)
  • 「-p」 ローカル環境で表示するための必要なファイルも含めてダウンロードする
  • 「-k」 相対パスへの書き換え
  • 「-nv」 詳細出力をしない

PHPファイルのように「index.php?foo=bar」と疑問符がついているURLのページがある場合は、「--adjust-extension --convert-links」という二つのオプションをさらに使うといいらしい(参照)。
 
※参照
windowsでのwgetメモ - Camera Obscura

wgetコマンド | 日経 xTECH(クロステック)
【 wget 】コマンド――URLを指定してファイルをダウンロードする:Linux基本コマンドTips(24) - @IT
wget - UNIX/Linuxコマンド - IT専科
wget の使い方
wgetでの一括ダウンロードが便利な件 – taichino.com
wgetが超絶便利なwebクローラー、クローリングツールだとは知らなかった・・・! - ばうあーろぐ
サイトデータを一括ダウンロードするwgetコマンド – asklife

わかりやすい。
wgetでホームページを丸ごとダウンロードする
日本語マニュアル。
http://www.bookshelf.jp/texi/wget/wget-ja.html
 

はてなダイアリーの一括ダウンロード

$ wget -np -w 1 -P ~/Downloads -r -l0 -p -k -nv -H -D d.hatena.ne.jp,\
www.flickr.com,photozou.jp,f.hatena.ne.jp http://d.hatena.ne.jp/obelisk2/
  • 「-H」 ホストの壁を越えて再帰的取得を行う
  • 「-D」 Domainを取得対象とする(メインのドメインも指定すること)

取得できなかったページがある場合は

  • 「-nc」 既に取得済みのファイルは改めて取得しない

でいいのかな。それとも

  • 「-c」 途中までダウンロードされていたら続きをダウンロードする

かな。

  • 「-N」 ダウンロード対象と同名のファイルが既に存在する場合、更新時間を比較しローカル側に存在するファイルのほうが新しい時はダウンロード処理を行いません。

なんてのもあるぞ(-N と -nc は同時に指定できないようだ)。また

  • 「-e robots=off」 robots.txt を無視する

が必要だろう(外部の画像ファイルが取得できていない)。

どうやら

  • 「-nc -e robots=off」

を付けて再実行かな。それから、Flickr の画像置き場は「staticflickr.com」みたいだ。だから再実行は

$ wget -np -w 1 -P ~/Downloads -r -l0 -p -k -nv -nc -e robots=off\
 -H -D d.hatena.ne.jp,staticflickr.com,photozou.jp,f.hatena.ne.jp\
 --waitretry=10 --adjust-extension --convert-links\
 http://d.hatena.ne.jp/obelisk2/

という感じか。あとはログを出力するために

  • 「-a hatena_diary_wget.log」

でも付けると。

最終的に

$ wget -np -w 1 -P ~/Downloads -r -l0 -p -k -nv -e robots=off\
 -H -D d.hatena.ne.jp,staticflickr.com,img.f.hatena.ne.jp,\
cdn-ak.f.st-hatena.com --waitretry=10 --adjust-extension --convert-links\
 http://d.hatena.ne.jp/obelisk2/

とやってみた。