blog

技術|wgetコマンドを使うための7つのヒント

特定のURLへのリンクを提供することにより、wgetでファイルをダウンロードすることができます。デフォルトのURLを指定すると、そのインデックスページがダウンロードされます。デフォルトでは、ファイルは...

Oct 16, 2025 · 6 min. read
シェア

wgetでファイルをダウンロードするには、特定のURLへのリンクを指定します。デフォルトがindex.htmlであるURLを指定すると、そのインデックスページがダウンロードされます。デフォルトでは、ファイルは元の名前で現在の作業ディレクトリにダウンロードされます。

  1. $ wget http://.om
  2. -- -- http://.om/
  3. Resolving example.com... .:8::4916
  4. Connecting to example.com|.216.34|:80... connected.
  5. HTTP request sent, awaiting response... 200 OK
  6. Length: K) [text/html]
  7. Saving to: 'index.html'

と- --output-document 使うことで、wgetに:

  1. $ wget http://.om --output-document - | head -n4
  2. <!doctype html>
  3. <html>
  4. <head>
  5. <title>Example Domain</title>
  1. $ wget http://.om --output-document foo.html

ストップ・アンド・スタート・トランスミッション

非常に大きなファイルをダウンロードする場合、ダウンロードが中断されることがあります。-continueを指定すると、wgetはファイルのどこでダウンロードを開始するかを決定できます。つまり、次に4GBのLinuxディストリビューションISOをダウンロードするときに、ダウンロードを中断するエラーが発生しても、最初からやり直す必要がなくなります。

  1. $ wget --continue https://./-.so

各種資料のダウンロード

  1. $ wget http://./le_{1..4}.bp

サイト全体のイメージ

mirrorオプションを使用すると、ディレクトリ構造を含むサイト全体をダウンロードできます。これは --recursive --level inf --timestamping --no-remove-listing オプションを使うのと同じ効果で、無制限の再帰が可能であることを示し、指定したドメイン配下のすべてを取得します。ただし、サイト自体の古さによっては、予想以上に多くのコンテンツを取得する可能性もあります。

wgetを使用してサイト全体をパッケージ化する場合、 --no-cookies --page-requisites --convert-links オプションは、パッケージ化されたサイトが新しく完全であることを確認するのに非常に便利です。

HTMLヘッダーの変更

コンピュータから送信される通信メッセージには、データ交換に使用される大量のデータが含まれています。HTTPヘッダーは初期データの一部です。サイトにアクセスすると、ブラウザはHTTPリクエストヘッダを送信します。各リクエストに対してwgetがどのようなヘッダ情報を送信するかを確認するには、--debugオプションを使用します。

  1. $ wget --debug example.com
  2. ---request begin---
  3. GET / HTTP/.1
  4. User-Agent: Wget/1.19.5 (linux-gnu)
  5. Accept: */*
  6. Accept-Encoding: identity
  7. Host: example.com
  8. Connection: Keep-Alive
  9. ---request end---

headerオプションでリクエストヘッダを変更できます。これは実際に、特定のブラウザを模倣してテストしたり、コード化が不十分で特定のプロキシとしか通信できないサイトと互換性を持たせるためによく使われます。

Windows システムの Microsoft Edge からのリクエストとして認識されるようにします:

  1. $ wget --debug --header="User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/ Safari/537.36 Edg/4.59" http://.om

ある種のモバイル機器のふりをすることもできます:

  1. $ wget --debug --header="User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS like Mac OS X) AppleWebKit/ (KHTML, like Gecko) Version/ Mobile/ Safari/604.1" http://.om

レスポンスヘッダの表示

ブラウザがリクエスト・ヘッダを送信するのと同じように、レスポンスにもヘッダ情報が含まれます。レスポンスのヘッダー情報を見るには --debug オプションを使います:

  1. $ wget --debug example.com
  2. ---response begin---
  3. HTTP/. 200 OK
  4. Accept-Ranges: bytes
  5. Cache-Control: max-age=
  6. Content-Type: text/html; charset=UTF-8
  7. Etag: ""
  8. Server: ECS (sab/574F)
  9. Vary: Accept-Encoding
  10. X-Cache: HIT
  11. Content-Length: 5216
  12. ---response end---
  13. Registered socket 3 for persistent reuse.
  14. URI content encoding = 'UTF-8'
  15. Length: K) [text/html]
  16. Saving to: 'index.html'

レスポンスの処理

200レスポンスコードは、すべてが期待通りであることを意味します。301レスポンスは、URLが永久に別の場所に移動したことを意味します。これは、サイト管理者がコンテンツを移行し、古いアドレスを訪れたユーザーが新しいアドレスを見つけるための「痕跡」を残すためによく使われる戦術です。

もちろん、デフォルトでwgetが301応答リダイレクトを処理する回数を制御するために --output-document オプションを使用することができます。に設定することは、自動的に新しいアドレスにリダイレクトしないことを意味します。

  1. $ wget --max-redirect 0 http://.rg
  2. -- -- http://.rg/
  3. Resolving iana.org... .8, :::8
  4. Connecting to iana.org|.8|:80... connected.
  5. HTTP request sent, awaiting response... 301 Moved Permanently
  6. Location: https://..rg/ [following]
  7. 0 redirections exceeded.

また、wgetがリダイレクトされる回数を制御するために、他の値を設定することもできます。

URL略語の拡張

-max-redirectオプションを使用すると、実際の訪問時に表示するのに便利です。短縮URLは、ユーザーが長いURLをそのままコピー&ペーストできない場合や、単語制限のあるソーシャルネットワークで使用できます。このような省略形は、目的地が本質的に隠されているので危険です。headオプションと--locationオプションを組み合わせてHTTPヘッダを表示し、最終的な宛先のロックを解除することで、リソース全体を読み込むことなく、省略形URLの全内容を表示することができます:

  1. $ wget --max-redirect 0 "https://./4T"
  2. -- -- https://./4T
  3. Resolving bit.ly... ...11
  4. Connecting to bit.ly|.248.10|:443... connected.
  5. HTTP request sent, awaiting response... 301 Moved Permanently
  6. Location: http://.om/ [following]
  7. 0 redirections exceeded.

$ wget --max-redirect 0 "https://./4T" 始まる出力の最後の行は、実際の目的地を示しています。

wgetの使用

サイト訪問全体に単一のコマンドを使用することを考え始めた場合、wgetは、グラフィカルインターフェイスの労力なしに、インターネットから情報を迅速かつ効率的に取得するのに役立ちます。通常のワークフローに組み込めるように、wgetの一般的な使用方法と構文のリストを作成しました。。

出典

Read next