wget --mirror \
--page-requisites \
--span-hosts \
--quiet --show-progress \
--no-parent \
--convert-links \
--no-host-directories \
--adjust-extension \
--execute robots=off \
https://example.com
パラメータの説明
-
--mirror: リンクを辿って再帰的にダウンロードする。タイムスタンプをチェックして新しいものだけダウンロードする。 -
--page-requisites: ページが使っている画像・CSS・JSをダウンロードします。 -
--span-hosts: ホストをまたがってダウンロードします。 -
--quiet --show-progress: 進捗を1ダウンロードあたり1行で表示する設定です。コンソールがうるさくなくなって良い。 -
--no-parent: 親ディレクトリは辿らない。ダウンロードしない。 -
--convert-links: CSS・JSへの参照がURLになっている部分を相対パスに変換します。 -
--no-host-directories: ホスト名でディレクトリを作らない設定です。 -
--adjust-extension: 拡張子がついていないファイルに拡張子をつける。例えば、/usersというHTMLはusers.htmlとして保存されます。 -
--execute robots=off: robots.txtを無視する。 -
https://example.com: ダウンロードを開始する起点です。起点をサブディレクトリにするとサブディレクトリ以下がダウンロードされます。たとえば、https://example.com/fooのようにすると、/foo以下がダウンロード対象。
ケースバイケースの設定
認証しないと閲覧できないコンテンツがある場合
認証しないと閲覧できないページがある場合、セッションIDが含まれているCookieヘッダを追加する。Cookieヘッダはブラウザの開発ツールで調べると良い。--headerオプションを追加する。
wget --mirror \
--header='Cookie: _session_id=xxxxxxxxxxxxxxxxxxxxxxxxx' \
... \
https://example.com
保存先のディレクトリを指定したい場合
2つ方法がある。
- 保存先に
cdしてwgetする。 -
--directory-prefixを指定する。
wget --mirror \
--directory-prefix=mywebsite \
... \
https://example.com
この場合、カレントディレクトリにmywebsiteディレクトリが作られ、その中にダウンロードしたファイルが集まる。
保存対象のディレクトリを指定したい場合
保存する対象をしぼるときは、--include-directoriesを使う。複数指定できる。
wget --mirror \
--include-directories=/foo,/bar,/buz \
... \
https://example.com
関連