4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【wget】Webサイトを丸ごとローカル環境にダウンロードする備忘録

Posted at

はじめに

管理者画面にアクセスできなくなったワードプレスのサイトがあり、保存しておきたい場面がありました。その方法とハマりどころをまとめます。

環境

  • Mac OSX 10.15(19A602)

wgetの準備

Webサーバーからコンテンツをダウンロードするためのコマンドです。

.bash
$ brew install wget

Webサイトの一括ダウンロード

.bash
$ wget -rkp -l 3 http://example.com/
  • -r, --recursive: 再帰ダウンロードを行う
  • -k, --convert-links: HTML や CSS 中のリンクをローカルを指すように変更する
    • 変更されるのは全てのダウンロードが終了後に行われるので、ダウンロード中に確認しても適用されていない点に注意
  • -p, --page-requisites: HTML を表示するのに必要な全ての画像等も取得する
  • -l, --level=NUMBER: 再帰時の階層の最大の深さを NUMBER に設定する (0 で無制限)

課題

再起的に保存する.css.jsにURLパラメータが付いていることがあり、URLパラメータ付きの名前として保存されてしまっていた。保存時に?&はエスケープされてしまうためローカルHTML上からアクセスできない問題が発生した。

参照が外れている.css, .jsファイルをリネーム(?以下を削除)することで解決した。
(数が多くなかったので手動で対応したが、多い場合は正規表現などで置換できそう。)

試したが使わなかったコマンド

  • -H, --span-hosts: 再帰中に別のホストもダウンロード対象にする
    • あまり外部ドメインに依存していなかった
  • --content-disposition: Content-Dispositionで指定されたファイル名で保存する

最後に

-kの適用タイミングで結構ハマりました。

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?