GNU wgetでウェブサイトのコンテンツを取得する


[!NOTE]
この記事は 2012/04/16 に seijimomoto.blogspot.com へ投稿した内容を Qiita へ移行してきたものです

 ウェブサイトのコンテンツをダウンロードしてローカルに保存する手順の備忘です。wget や cURL を使用する方法がありますが、ここでは wget を使用する方法を説明しています。

GNU wgetを使用する方法

特定の1ページについてコンテンツを取得する
-- URLを指定してコンテンツをダウンロードする
$ wget -pk https://www.gnu.org/software/wget/

-- コンテンツはホスト名の名前がついたディレクトリの中にダウンロードされる
$ ls -R ./www.gnu.org/

  ./www.gnu.org/:
  combo.css  graphics  layout.min.css  mini.css  print.min.css  robots.txt  software

  ./www.gnu.org/graphics:
  fsf-logo-notext.png  heckert_gnu.small.png  topbanner.png

  ./www.gnu.org/software:
  wget

  ./www.gnu.org/software/wget:
  index.html

 ダウンロードした HTML ファイルをウェブブラウザで開くと、コンテンツを取得できていることを確認できます。

再帰的な取得

 サイト全体のコンテンツを再起的に取得する場合は、wget のオプションに -r を付けます。このオプションを付けてコマンドを実行した場合、ページ内のリンクを辿って複数のページのコンテンツを一度に取得することができます。

 例えば、次のコマンドでは http://localhost/ から取得できるコンテンツを全てダウンロードします (Wget for Windows の場合):

サイト全体のコンテンツを再起的に取得する
> wget.exe ^
  --wait=3 ^
  --force-directories ^
  --directory-prefix=.\download\ ^
  --html-extension ^
  --convert-links ^
  --page-requisites ^
  --recursive ^
  --level=0 ^
  http://localhost/

Cookie やユーザーエージェントを指定して取得

 例えば、次のコマンドでは Cookie やユーザーエージェントを指定して http://localhost/ から取得できるコンテンツをダウンロードします (Wget for Windows の場合):

> wget.exe ^
  --force-directories ^
  --directory-prefix=.\download\ ^
  --execute="robots=off" ^
  --keep-session-cookies ^
  --load-cookies=.\download\cookies.txt ^
  --save-cookies=.\download\cookies.txt ^
  --user-agent="Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko/20100101 Firefox/11.0" ^
  http://localhost/