wgetコマンドで画像やCSSなども含めてダウンロードする方法
スポンサードリンク
wgetコマンドでは複数のオプションを組み合わせることで、HTMLソースだけでなく、ページを表示するために必要な画像やCSS、JavaScriptファイルなども一緒にダウンロードすることができます。ダウンロードする際の基本的な構文は以下の通りです。
wget -pkE "取得したいURL"
指定しているオプションはそれぞれ以下を意味します。
- -p(–page-requisites) ページに必要な関連ファイルをダウンロード
- -k(–convert-links) リンクをローカルファイルに変換
- -E(–adjust-extension) 必要に応じて拡張子を付与
当ブログで試してみましょう。最初にhttps://uchy.me/blog/の結果をindex.htmlとして保存し、その後、robots.txtやCSSなどページの表示に必要なリソースを順次保存していることがわかります。
[root@hostname tmp]# wget -pkE https://uchy.me/blog/
--2025-04-17 22:01:39-- https://uchy.me/blog/
uchy.me (uchy.me) をDNSに問いあわせています... 49.212.235.185
uchy.me (uchy.me)|49.212.235.185|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 21256 (21K) [text/html]
`uchy.me/blog/index.html' に保存中
100%[==========================================================================================================================================================================>] 21,256 --.-K/s 時間 0s
2025-04-17 22:01:39 (120 MB/s) - `uchy.me/blog/index.html' へ保存完了 [21256/21256]
robots.txtを読み込んでいます、エラーは無視してください。
--2025-04-17 22:01:39-- https://uchy.me/robots.txt
uchy.me:443 への接続を再利用します。
HTTP による接続要求を送信しました、応答を待っています... 404 Not Found
2025-04-17 22:01:39 エラー 404: Not Found。
--2025-04-17 22:01:39-- https://uchy.me/blog/css/highlightjs-themes/androidstudio.css
uchy.me:443 への接続を再利用します。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 774 [text/css]
`uchy.me/blog/css/highlightjs-themes/androidstudio.css' に保存中
100%[==========================================================================================================================================================================>] 774 --.-K/s 時間 0s
2025-04-17 22:01:39 (77.0 MB/s) - `uchy.me/blog/css/highlightjs-themes/androidstudio.css' へ保存完了 [774/774]
--2025-04-17 22:01:39-- https://uchy.me/blog/css/font-awesome.min.css
uchy.me:443 への接続を再利用します。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 27466 (27K) [text/css]
`uchy.me/blog/css/font-awesome.min.css' に保存中
100%[==========================================================================================================================================================================>] 27,466 --.-K/s 時間 0s
2025-04-17 22:01:39 (238 MB/s) - `uchy.me/blog/css/font-awesome.min.css' へ保存完了 [27466/27466]
--2025-04-17 22:01:39-- https://uchy.me/blog/css/phlat.css
uchy.me:443 への接続を再利用します。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 5898 (5.8K) [text/css]
`uchy.me/blog/css/phlat.css' に保存中
100%[==========================================================================================================================================================================>] 5,898 --.-K/s 時間 0s
2025-04-17 22:01:39 (174 MB/s) - `uchy.me/blog/css/phlat.css' へ保存完了 [5898/5898]
--2025-04-17 22:01:39-- https://uchy.me/blog/css/style.css
uchy.me:443 への接続を再利用します。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 4119 (4.0K) [text/css]
`uchy.me/blog/css/style.css' に保存中
100%[==========================================================================================================================================================================>] 4,119 --.-K/s 時間 0s
2025-04-17 22:01:39 (68.7 MB/s) - `uchy.me/blog/css/style.css' へ保存完了 [4119/4119]
--2025-04-17 22:01:39-- https://uchy.me/blog/images/thumb/thumb-linux-command.svg
uchy.me:443 への接続を再利用します。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 23290 (23K) [image/svg+xml]
`uchy.me/blog/images/thumb/thumb-linux-command.svg' に保存中
100%[==========================================================================================================================================================================>] 23,290 --.-K/s 時間 0s
2025-04-17 22:01:39 (92.0 MB/s) - `uchy.me/blog/images/thumb/thumb-linux-command.svg' へ保存完了 [23290/23290]
--2025-04-17 22:01:39-- https://uchy.me/blog/images/thumb/thumb-linux-shell.svg
uchy.me:443 への接続を再利用します。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 21420 (21K) [image/svg+xml]
`uchy.me/blog/images/thumb/thumb-linux-shell.svg' に保存中
100%[==========================================================================================================================================================================>] 21,420 --.-K/s 時間 0s
2025-04-17 22:01:39 (159 MB/s) - `uchy.me/blog/images/thumb/thumb-linux-shell.svg' へ保存完了 [21420/21420]
--2025-04-17 22:01:39-- https://uchy.me/blog/images/thumb/thumb-linux-mysql.png
uchy.me:443 への接続を再利用します。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 8244 (8.1K) [image/png]
`uchy.me/blog/images/thumb/thumb-linux-mysql.png' に保存中
100%[==========================================================================================================================================================================>] 8,244 --.-K/s 時間 0s
2025-04-17 22:01:39 (39.7 MB/s) - `uchy.me/blog/images/thumb/thumb-linux-mysql.png' へ保存完了 [8244/8244]
--2025-04-17 22:01:39-- https://uchy.me/blog/images/thumb/thumb-linux-php-apache.svg
uchy.me:443 への接続を再利用します。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 15964 (16K) [image/svg+xml]
`uchy.me/blog/images/thumb/thumb-linux-php-apache.svg' に保存中
100%[==========================================================================================================================================================================>] 15,964 --.-K/s 時間 0s
2025-04-17 22:01:39 (177 MB/s) - `uchy.me/blog/images/thumb/thumb-linux-php-apache.svg' へ保存完了 [15964/15964]
--2025-04-17 22:01:39-- https://uchy.me/blog/js/highlight.min.js
uchy.me:443 への接続を再利用します。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 42705 (42K) [application/javascript]
`uchy.me/blog/js/highlight.min.js' に保存中
100%[==========================================================================================================================================================================>] 42,705 --.-K/s 時間 0s
2025-04-17 22:01:39 (285 MB/s) - `uchy.me/blog/js/highlight.min.js' へ保存完了 [42705/42705]
--2025-04-17 22:01:39-- https://uchy.me/blog/fonts/fontawesome-webfont.eot?v=4.5.0
uchy.me:443 への接続を再利用します。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 70807 (69K) [application/vnd.ms-fontobject]
`uchy.me/blog/fonts/fontawesome-webfont.eot?v=4.5.0' に保存中
100%[==========================================================================================================================================================================>] 70,807 --.-K/s 時間 0.001s
2025-04-17 22:01:39 (59.8 MB/s) - `uchy.me/blog/fonts/fontawesome-webfont.eot?v=4.5.0' へ保存完了 [70807/70807]
--2025-04-17 22:01:39-- https://uchy.me/blog/fonts/fontawesome-webfont.eot?
uchy.me:443 への接続を再利用します。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 70807 (69K) [application/vnd.ms-fontobject]
`uchy.me/blog/fonts/fontawesome-webfont.eot?' に保存中
100%[==========================================================================================================================================================================>] 70,807 --.-K/s 時間 0.001s
2025-04-17 22:01:39 (117 MB/s) - `uchy.me/blog/fonts/fontawesome-webfont.eot?' へ保存完了 [70807/70807]
--2025-04-17 22:01:39-- https://uchy.me/blog/fonts/fontawesome-webfont.woff2?v=4.5.0
uchy.me:443 への接続を再利用します。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 66624 (65K) [font/woff2]
`uchy.me/blog/fonts/fontawesome-webfont.woff2?v=4.5.0' に保存中
100%[==========================================================================================================================================================================>] 66,624 --.-K/s 時間 0s
2025-04-17 22:01:39 (143 MB/s) - `uchy.me/blog/fonts/fontawesome-webfont.woff2?v=4.5.0' へ保存完了 [66624/66624]
--2025-04-17 22:01:39-- https://uchy.me/blog/fonts/fontawesome-webfont.woff?v=4.5.0
uchy.me:443 への接続を再利用します。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 83588 (82K) [font/woff]
`uchy.me/blog/fonts/fontawesome-webfont.woff?v=4.5.0' に保存中
100%[==========================================================================================================================================================================>] 83,588 --.-K/s 時間 0.001s
2025-04-17 22:01:39 (91.1 MB/s) - `uchy.me/blog/fonts/fontawesome-webfont.woff?v=4.5.0' へ保存完了 [83588/83588]
--2025-04-17 22:01:39-- https://uchy.me/blog/fonts/fontawesome-webfont.ttf?v=4.5.0
uchy.me:443 への接続を再利用します。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 142072 (139K) [font/ttf]
`uchy.me/blog/fonts/fontawesome-webfont.ttf?v=4.5.0' に保存中
100%[==========================================================================================================================================================================>] 142,072 --.-K/s 時間 0.001s
2025-04-17 22:01:39 (98.6 MB/s) - `uchy.me/blog/fonts/fontawesome-webfont.ttf?v=4.5.0' へ保存完了 [142072/142072]
--2025-04-17 22:01:39-- https://uchy.me/blog/fonts/fontawesome-webfont.svg?v=4.5.0
uchy.me:443 への接続を再利用します。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 365616 (357K) [image/svg+xml]
`uchy.me/blog/fonts/fontawesome-webfont.svg?v=4.5.0' に保存中
100%[==========================================================================================================================================================================>] 365,616 --.-K/s 時間 0.01s
2025-04-17 22:01:39 (34.0 MB/s) - `uchy.me/blog/fonts/fontawesome-webfont.svg?v=4.5.0' へ保存完了 [365616/365616]
終了しました --2025-04-17 22:01:39--
経過時間: 0.5s
ダウンロード完了: 16 ファイル、948K バイトを 0.02s で取得 (58.4 MB/s)
uchy.me/blog/index.html を変換しています... 17-9
uchy.me/blog/css/style.css を変換しています... なにもすることがありません。
uchy.me/blog/css/font-awesome.min.css を変換しています... 6-0
uchy.me/blog/css/highlightjs-themes/androidstudio.css を変換しています... なにもすることがありません。
uchy.me/blog/css/phlat.css を変換しています... なにもすることがありません。
5 個のファイルを 0.001 秒で変換しました。
以下の画像はダウンロードした結果をtreeコマンドで表示した結果です。HTMLファイルやCSS、画像などが存在することが分かります。また、HTMLソース内を見ると、ローカルの画像やCSSを表示するよう、link属性やimg属性のパスが相対パスに下記変わっていることが分かります。
特定のページをローカルに保存したいときに利用できるテクニックです。
Linuxコマンドについて学べるおすすめ書籍
Linuxコマンドの知識は、プログラマにとって長く役立つ知識です。 私はこちらの書籍で一通り知識を抑えました。基本から丁寧に解説されています。
リンク
Linux教科書 図解でパッとわかる LPIC/LinuC
はじめてLPICを受ける方向け、手を動かしながらLinuxについて学びたい方におすすめ。30日間の無料体験もできる『Kindle Unlimited』でも読むことができます。
リンク
Linuxコマンドについて徹底的に学べるUdemy講座
もう絶対に忘れない Linux コマンド【Linux 100本ノック+名前の由来+丁寧な解説で、長期記憶に焼き付けろ!】