wget - webページをダウンロードする

スポンサーリンク

ブラウザ等でwebページをダウンロードすることもできますが、wgetコマンドではwebページをもう少し複雑な条件でダウンロードを行うことができます。
また、wgetコマンドを利用して、一定の周期でwebページをダウンロードを行うことができれば、簡単なクローラーのようなことができます。

基本的なダウンロード

コマンド例

ダウンロード結果

オフライン環境での表示結果

対象のwebページをローカルに保存(対象のドメインのページのみ)

コマンド例

ダウンロード結果

オフライン環境での表示結果

対象のwebページが外部のサーバを利用してコンテンツを表示している場合

コマンド例

実行結果

対象のwebページが外部のサーバを利用してコンテンツを表示している場合2(ダウンロードしてきたサーバのディレクトリを作成しない)

コマンド例

実行結果

オプションの説明

オプション機能
-p (--page-requisites)表示に必要なファイルを一緒にダウンロードする。 (.css, .png, .gifなどのファイル)
-E (--adjust-extension)例えば、ダウンロードされたファイルのhtmlのファイルであるのに接尾辞が.htmlで終わらないようなファイルをダウンロードしたときに、wgetがダウンロードしたファイルをローカルに保存するとき、自動的に.htmlのような接尾辞をそのダウンロードしたファイルにつけてくれるオプション。cssなどのファイルも同様に行ってくれる。
-k (--convert-links)すべてのファイルがダウンロードされた後に、ダウンロードされたファイルのリンクを、ローカル上に保存した状態に合わせてリンクを修正する。リンクを直すときは 相対パスで修正される。 ダウンロードされなかったファイルのリンクについて、対象のファイルのリンクの書かれ方にかかわらず、絶対パスのURLに修正される。
-H (--span-hosts)対象のサーバーから見て、外部にあるサーバー(ドメイン)に置かれているコンテンツもダウンロードできるようにする。 サーバーの負荷分散やクラウドサービス等を利用して、別のサーバーにコンテンツを置いているようなサイトからダウンロードするためのオプション。
-nH (--no-host-directories)このオプションをつけない場合、ダウンロードしたファイルをホストごとにディレクトリを作成して、それぞれのホストのディレクトリにダウンロードしたファイルを保存する。 -Hオプションをつけていると多くのサーバからファイルをダウンロードすることになり、大量のディレクトリが作成される多いので、このオプションをつける。
スポンサーリンク

認証のあるサイトのページのダウンロード

1.認証のあるサイトで認証するときにPOSTされるデータを調べます。(Firefox:Firebug,Chrome:デベロッパーツール)

2.認証のあるページでcookieを手に入れます。

3.目的のページをダウンロードします。

 

 

 

特定のファイルのみダウンロード

コマンド例

特定のファイルのみダウンロードしない

コマンド例

オプションの説明

オプション機能
-A (--accept)ダウンロードするファイルタイプまたは、パターン
-R (--reject)ダウンロードしないファイルタイプまたは、パターン

再帰ダウンロード

コマンド例

コマンド例のオプションの説明は以下のようになります。

-rで再帰ダウンロード、-Dは再帰ダウンロードでよくわからないドメインまでダウンロードしないようにフィルタをかけます。
-wで2秒間の間隔でダウンロードし、-tでダウンロードが失敗したときに3回までダウンロードをし直します。
-npは上の階層のページをダウンロードしないようにするオプションだが、ここでは必要はないと考える。一応コピペ用でつけています。
-p,-E,-k,-H,-nHでページの表示をそのままにローカルにダウンロードします。

再帰ダウンロードはサーバーに負荷をかけるので、一定時間を空けるような-wオプションなども検討する。

オプションの説明

オプション機能
-r (--recursive)再帰ダウンロードを行う。深さが5まで階層を潜って、ダウンロードする。
-np (--no-parent)再帰ダウンロード時に、親の階層にいかなくなる。
-w (--wait)ファイルをダウンロードするのに一定時間の間隔をあける。単位がなければ秒、mをつければ分、hをつければ時、dをつければ日、の間隔をあけることができる。
-t (--tries)試行回数を設定する。無限に再試行する場合は「0」または「inf」を指定する。 デフォルトでは、「接続拒否」または「見つからない」(404)などの致命的なエラーは除き、再試行されない。
-D (--domains)ダウンロードするドメインを指定する。複数のドメイン指定する場合はコンマ(,)で分ける。

その他のオプションの説明

オプション機能
--random-waitwaitオプションの時間をランダムに0.5~1.5倍した時間間隔でダウンロードする。
-l再帰ダウンロードする深さを指定する。 このオプションがないときは5の深さまで再帰ダウンロードを行う。
-P保存するディレクトリを指定する。

参考

wgetマニュアル(英文)

https://www.gnu.org/software/wget/manual/wget.html