ウェブサイトを一括で全部ダウンロードする方法。 [ウェブサイトをダウンロードする方法]
最も簡単に任意のウェブサイトを全部ダウンロードして保存する方法です。
勿論、使用するのは " wget " コマンドです。
wget コマンドはCUIから利用可能で、ウェブサイトのリンクを辿りながらページや画像などのコンテンツをダウンロードして保存したり出来る便利な機能です。
wgetがインストールされていない場合はまずwgetをインストールして置いて下さい。
以下に、写真投稿サーヴィスのFlickrから静的に画像が貼られたウェブサイトをダウンロードするコマンドの例を示します。
この例のウェブサイトではページ内に、写真投稿サーヴィスのFlickrにアップロードされている画像を " <img> " タグで表示しています。
これらの静的にリンクされた画像も保存したいので、ダウンロード対象のウェブサイトのドメインに加えて、Flickrの画像データが置かれているドメインである " c1.staticflickr.com " から " c9.staticflickr.com " と " farm1.staticflickr.com " から " farm9.staticflickr.com " を、 " -H -D " に続けてコンマで区切って指定致します。
また、オリジナル サイズの画像ファイルはデータが大きく、サーヴァーのサーヴィスに負担を掛けてしまうので、 " _o.png " 及び " _o.jpg " で終わるファイル名を持つオリジナル サイズの画像をダウンロードしないように弾いております。
これにより、画像なども含めてウェブサイトを丸ごと全部ダウンロードして保存する事が出来ます。
注意点と致しまして、多くのファイルをダウンロードしようとすると、相手のウェブサイトのサーヴァーに過負荷となり、サーヴィスを妨害する事になりかねませんので、極力ウェブサイト全体のダウンロードは避けて下さい。 この方法を実行するのは、どうしても必要な場合だけにして下さい。
次の記事がとても参考になります。
"@IT" の記事 "Linux基本コマンドTips(24):【 wget 】コマンド――URLを指定してファイルをダウンロードする" のURL:
http://www.atmarkit.co.jp/ait/articles/1606/20/news024.html
"GNU Wget" の公式の解説ページのURL:
https://www.gnu.org/software/wget/manual/html_node/index.html
勿論、使用するのは " wget " コマンドです。
wget コマンドはCUIから利用可能で、ウェブサイトのリンクを辿りながらページや画像などのコンテンツをダウンロードして保存したり出来る便利な機能です。
wgetがインストールされていない場合はまずwgetをインストールして置いて下さい。
以下に、写真投稿サーヴィスのFlickrから静的に画像が貼られたウェブサイトをダウンロードするコマンドの例を示します。
|
[使用したオプションと引数の説明]
-r
ハイパーリンクを辿って再帰的にダウンロードします。既定値では5階層まで辿ります。
-l 3
再帰的に辿るリンクの階層数を指定した数に制限します。例では3回分のハイパーリンクを辿ります。
-k
ダウンロードが完了した後に、ファイル内に記述されているURLを、ローカルで閲覧するのに適したものに変換します。
-p
ウェブ ページを正しく表示するのに必要なファイルを全てダウンロードします。インラインの画像ファイル、音声ファイル、参照されるスタイルシートなどです。
-w 1
リクエスト毎に指定の秒数待ちます。例ではリクエスト間隔を1秒に設定しました。
--random-wait
リクエスト間隔を指定秒数の0.5倍から1.5倍の間で変化させる事により、ウェブサイトから遮断される事を回避します。
-A jpg,png,gif,pct,bmp
指定した拡張子のファイルだけをダウンロードします。
--reject-regex='_o.png|_o.jpg'
正規表現によって条件に合致するURLを弾きます。この例では " _o.png " という文字列を持つファイルと、 " _o.jpg " という文字列を持つファイルを弾きます。
-H
外部のドメインからもファイルをダウンロードします。複数の拡張子を指定する際にはコンマ (,)で区切って列挙します。
-D xxxx.xxxx.jp,c1.staticflickr.com,....
ファイルをダウンロードするドメインを限定します。複数のドメインを指定する際にはコンマ (,)で区切って列挙します。
http://xxxx.xxxx.jp/
ダウンロード対象の起点となる任意のURLを指定します。
-P ./download/site001/
ダウンロードしたファイルを保存するディレクトリー (フォルダー)を指定します。
-r
ハイパーリンクを辿って再帰的にダウンロードします。既定値では5階層まで辿ります。
-l 3
再帰的に辿るリンクの階層数を指定した数に制限します。例では3回分のハイパーリンクを辿ります。
-k
ダウンロードが完了した後に、ファイル内に記述されているURLを、ローカルで閲覧するのに適したものに変換します。
-p
ウェブ ページを正しく表示するのに必要なファイルを全てダウンロードします。インラインの画像ファイル、音声ファイル、参照されるスタイルシートなどです。
-w 1
リクエスト毎に指定の秒数待ちます。例ではリクエスト間隔を1秒に設定しました。
--random-wait
リクエスト間隔を指定秒数の0.5倍から1.5倍の間で変化させる事により、ウェブサイトから遮断される事を回避します。
-A jpg,png,gif,pct,bmp
指定した拡張子のファイルだけをダウンロードします。
--reject-regex='_o.png|_o.jpg'
正規表現によって条件に合致するURLを弾きます。この例では " _o.png " という文字列を持つファイルと、 " _o.jpg " という文字列を持つファイルを弾きます。
-H
外部のドメインからもファイルをダウンロードします。複数の拡張子を指定する際にはコンマ (,)で区切って列挙します。
-D xxxx.xxxx.jp,c1.staticflickr.com,....
ファイルをダウンロードするドメインを限定します。複数のドメインを指定する際にはコンマ (,)で区切って列挙します。
http://xxxx.xxxx.jp/
ダウンロード対象の起点となる任意のURLを指定します。
-P ./download/site001/
ダウンロードしたファイルを保存するディレクトリー (フォルダー)を指定します。
この例のウェブサイトではページ内に、写真投稿サーヴィスのFlickrにアップロードされている画像を " <img> " タグで表示しています。
これらの静的にリンクされた画像も保存したいので、ダウンロード対象のウェブサイトのドメインに加えて、Flickrの画像データが置かれているドメインである " c1.staticflickr.com " から " c9.staticflickr.com " と " farm1.staticflickr.com " から " farm9.staticflickr.com " を、 " -H -D " に続けてコンマで区切って指定致します。
また、オリジナル サイズの画像ファイルはデータが大きく、サーヴァーのサーヴィスに負担を掛けてしまうので、 " _o.png " 及び " _o.jpg " で終わるファイル名を持つオリジナル サイズの画像をダウンロードしないように弾いております。
これにより、画像なども含めてウェブサイトを丸ごと全部ダウンロードして保存する事が出来ます。
注意点と致しまして、多くのファイルをダウンロードしようとすると、相手のウェブサイトのサーヴァーに過負荷となり、サーヴィスを妨害する事になりかねませんので、極力ウェブサイト全体のダウンロードは避けて下さい。 この方法を実行するのは、どうしても必要な場合だけにして下さい。
次の記事がとても参考になります。
"@IT" の記事 "Linux基本コマンドTips(24):【 wget 】コマンド――URLを指定してファイルをダウンロードする" のURL:
http://www.atmarkit.co.jp/ait/articles/1606/20/news024.html
"GNU Wget" の公式の解説ページのURL:
https://www.gnu.org/software/wget/manual/html_node/index.html