53
WindowsのコマンドラインでWgetを使ってファイルをダウンロードする方法
Wget を使用して Windows コマンドラインからファイルをダウンロードする
(画像提供:Tom's Hardware)

ほとんどのユーザーは、ウェブブラウザを使ってファイルをPCにダウンロードします。しかし、この方法には問題があります。それは、あまり効率的ではないということです。ダウンロードを一時停止したり、接続が切れたりした場合、最初からダウンロードをやり直す必要があるでしょう。また、コマンドラインでPythonなどのコードを操作していて、コマンドプロンプトから直接ダウンロードしたい場合もあるでしょう。 

ここで、Wget のようなツールが役立ちます。このコマンドライン ツールには、再帰ダウンロードやダウンロード再開をサポートし、単一のファイル (または Web サイト全体) を一度にダウンロードできるなど、多くの便利な機能が備わっています。

WgetはLinuxやその他のUnixベースのオペレーティングシステムで人気ですが、Windowsユーザーでも利用できます。以下では、Wgetをインストールして使用し、Windowsコマンドラインから必要なオンラインコンテンツをダウンロードする方法を説明します。

WindowsにGNU Wgetをインストールする

Wget(少なくとも名前は)は、Windows 10および11のPowerShellターミナル経由で利用できます。ただし、このバージョンのWgetは、Linux PCで使用するGNU Wgetツールとは異なります。このバージョンは、Invoke-WebRequestというPowerShellコマンドのエイリアスに過ぎません。

Invoke-WebRequest はWget に似た機能を持っていますが、全く異なるツールであり、使い方や理解がはるかに難しいです。代わりに、Linux ユーザー向けにコンパイルされた Wget for Windows をインストールすることをお勧めします。以下の手順に従ってインストールしてください。

1. WgetのウェブサイトからWindows用のWgetセットアップファイルをダウンロードします。この操作はWebブラウザを使って行う必要があります。

Tom's Hardware の最高のニュースと詳細なレビューをあなたの受信箱に直接お届けします。

2. Wget for Windowsインストーラーファイルを実行します。Wgetセットアップファイルのダウンロードが完了したら、セットアップファイルを実行し、画面の指示に従ってインストールを完了します。

Wget を使用して Windows コマンドラインからファイルをダウンロードする

(画像提供:Tom's Hardware)

3. Wget.exe ファイルを更新します(オプション)。Wget インストーラーには、かなり古いバージョンの Wget バイナリが同梱されています。SSL 証明書エラーのためにファイルのダウンロードに問題がある場合は、こちらの Web サイトからアーキテクチャに応じた最新の wget.exe をダウンロードし、Wget のインストールディレクトリ(通常は C:\Program Files (x86)\GnuWin32\bin)に保存してください。この手順はオプションですが、強くお勧めします。

Wget を使用して Windows コマンドラインからファイルをダウンロードする

(画像提供:Tom's Hardware)

4.スタートメニューを開き、「環境変数」を検索して「開く」をクリックします。インストールが完了したら、スタートメニューの検索ツールを使用して環境変数を検索し、「開く」をクリックします。これにより、コマンドラインから「wget」コマンドを実行するたびにその場所を参照することなく使用できるようになります。

Wget を使用して Windows コマンドラインからファイルをダウンロードする

(画像提供:Tom's Hardware)

5. 「システム プロパティ」ウィンドウで「環境変数」をクリックします。

Wget を使用して Windows コマンドラインからファイルをダウンロードする

(画像提供:Tom's Hardware)

6.パスを選択し、システム環境変数またはユーザー環境変数の下にある編集をクリックします。

Wget を使用して Windows コマンドラインからファイルをダウンロードする

(画像提供:Tom's Hardware)

7. 「新規」ボタンをクリックし 、Wget for Windows バイナリ (.exe) ファイルのディレクトリを入力します。デフォルトでは、C:\Program Files (x86)\GnuWin32\bin です。

Wget を使用して Windows コマンドラインからファイルをダウンロードする

(画像提供:Tom's Hardware)

8.変更を保存します。完了したら、各メニューで「OK」をクリックし、システムのプロパティを終了します。

Wget を使用して Windows コマンドラインからファイルをダウンロードする

(画像提供:Tom's Hardware)

9.スタートメニューを開き、「cmd」と入力して「開く」を押します。新しいコマンドプロンプトウィンドウが起動します。コマンドプロンプトシェルに切り替えれば、新しいターミナルアプリを使用することもできます。

Wget を使用して Windows コマンドラインからファイルをダウンロードする

(画像提供:Tom's Hardware)

10. wget --version と入力し、Enter キーを押します。Wget が正しくインストールされていれば、コマンドプロンプトウィンドウに GNU Wget のバージョンが表示されます。

Wget を使用して Windows コマンドラインからファイルをダウンロードする

(画像提供:Tom's Hardware)

代わりに PowerShell ターミナルから Wget を実行する場合は、インストール ディレクトリからファイルを直接実行する必要があります (例: C:\Program Files (x86)\GnuWin32\bin\wget.exe)。

Wget でファイルをダウンロードする

GNU Wget をインストールし、正しく起動できるように環境変数を設定すると、ファイルや Web ページのダウンロードを開始できるようになります。

以下の例では、ドメインとファイルパスの例を使用しています。ダウンロードしたいファイル(複数可)への正しいパスに置き換えてください。

  • wget -h と入力すると、 Wget で使用できるすべてのオプションのリストが表示されます。wget
    -h

Wget を使用して Windows コマンドラインからファイルをダウンロードする

(画像提供:Tom's Hardware)
  • wget <url> を使用して単一のファイルをダウンロードします。<url> は、HTTP、HTTPS、またはFTPサーバー上のファイルへのパスに置き換えてください。ウェブサイトのドメイン名またはウェブページを直接参照して、そのページのみをダウンロードすることもできます(他のコンテンツはダウンロードしません)。wget
    example.com

Wget を使用して Windows コマンドラインからファイルをダウンロードする

(画像提供:Tom's Hardware)
  • -O オプションを使って別のファイル名で保存します。-O オプションを使うと、ファイルを別のファイル名で保存できます。例えば、wget -O <filename> <url> のように実行します。<filename> は選択したファイル名です。wget
    -O example.html example.com

Wget を使用して Windows コマンドラインからファイルをダウンロードする

(画像提供:Tom's Hardware)
  • -P オプションを使って別のディレクトリに保存します。現在いるディレクトリとは別のディレクトリに保存したい場合は、-P オプションを使用します。例えば、wget -P <path> <url> のように指定します。wget
    -PC:\folder example.com

Wget を使用して Windows コマンドラインからファイルをダウンロードする

(画像提供:Tom's Hardware)
  • ファイルの再開には --continue または -c を使用します。部分的なダウンロードを再開したい場合は、同じディレクトリにいる限り -c オプションを使用してください。例えば、wget -c <url> のように指定します。wget
    -c example.com

Wget を使用して Windows コマンドラインからファイルをダウンロードする

(画像提供:Tom's Hardware)
  • 複数のファイルを順番にダウンロードします。複数のファイルをダウンロードしたい場合は、WgetコマンドにそれぞれのURLを追加してください。例えば、wget <url1> <url2> などです。wget
    example.com tomshardware.com

Wget を使用して Windows コマンドラインからファイルをダウンロードする

(画像提供:Tom's Hardware)
  • -i オプションを使ってテキストファイルから複数のファイルをダウンロードします。-i オプションを使うと、URL のリストを含むテキストファイルを参照して大量のファイルをダウンロードできます。各 URL が改行されていると仮定すると、Wget は各 URL から順番にコンテンツをダウンロードします。例えば、wget -i <file.txt> <url> のように指定します。wget
    -i urls.txt

Wget を使用して Windows コマンドラインからファイルをダウンロードする

(画像提供:Tom's Hardware)
  • --limit-rate を使用してダウンロード速度を制限します。帯域幅の使用量を制限したい場合は、--limit-rate オプションを使用してダウンロード速度に上限を設定できます。例えば、wget --limit-rate=1M <url> はダウンロード速度を1MB/秒に制限し、wget --limit-rate=10K <url> は10KB/秒に制限します。wget
    --limit-rate=10K example.com

Wget を使用して Windows コマンドラインからファイルをダウンロードする

(画像提供:Tom's Hardware)
  • -w または –wait を使用して、各ダウンロード後の一時停止時間を設定できます。複数のファイルをダウンロードする場合、-w を使用するとリクエストを分散させ、ダウンロードがブロックされる可能性を減らすことができます。例えば、10秒間待機する場合は wget -w 10 <url1> <url2> と入力します。 

wget -w 10 example.com tomshardware.com

Wget を使用して Windows コマンドラインからファイルをダウンロードする

(画像提供:Tom's Hardware)
  • -t または --tries を使用して再試行回数の制限を設定します。ダウンロードに失敗した場合、wget は -t の値を使用して、ダウンロードを停止するまでの再試行回数を決定します。デフォルト値は20回です。ファイルが見つからない場合、または接続が拒否された場合、この値は無視され、Wget は直ちに終了します。wget
    -t 5 example.com

Wget を使用して Windows コマンドラインからファイルをダウンロードする

(画像提供:Tom's Hardware)
  • -o または -a を使用してログを保存します。 -o (常に新しいログファイルを作成する)または -a (既存のファイルに追加する)を使用して、ログデータをテキストファイルに保存できます。例:wget -o <file.txt> <url>。

Wget を使用して Windows コマンドラインからファイルをダウンロードする

(画像提供:Tom's Hardware)
  •  --no-check-certificate を使用して SSL エラーを回避します。SSL 証明書を持つ Web サーバーからのダウンロードで問題が発生し、Wget を既に更新している場合は、--no-check-certificate を使用して SSL 証明書のチェックを完全に回避し、ダウンロードを許可します(ほとんどの場合)。これは、完全に信頼できる場所からのダウンロードにのみ使用してください。例:wget --no-check-certificate example.com。 

wget --no-check-certificate https://example.com

Wget を使用して Windows コマンドラインからファイルをダウンロードする

(画像提供:Tom's Hardware)

利用可能なオプションの完全なリストを表示するには、 wget -hまたはwget --helpコマンドを使用してください。Wget で問題が発生した場合は、再試行回数を制限し、ダウンロード試行ごとに待機時間制限を設定してください。

再帰ダウンロードにWgetを使用する

Wget の最も便利な機能の一つは、再帰的にダウンロードできることです。単一のファイルだけをダウンロードするのではなく、関連するファイルを含むディレクトリ全体をダウンロードしようとします。

例えば、ウェブページを指定すると、そのページに添付されているコンテンツ(画像など)がダウンロードされます。また、選択した再帰深度に応じて、そのページにリンクされているページ、それらのページ内のコンテンツ、それらのページにリンクされているページなどもダウンロードされます。

理論上、Wget は無限の深度レベルで実行できます。つまり、ダウンロードしたコンテンツをどんどん深く掘り下げようとし続けるということです。しかし、実用的な観点から見ると、ほとんどのウェブサーバーはこのレベルのスクレイピングをブロックする可能性があるため、慎重に行う必要があります。

  • 再帰的にダウンロードするには、wget -r または wget --recursive と入力します。デフォルトの深度レベルは5です。例えば、wget -r <url> のように
    入力します。wget -r tomshardware.com

Wget を使用して Windows コマンドラインからファイルをダウンロードする

(画像提供:Tom's Hardware)
  • -l または –level を使ってカスタムの深度レベルを設定します。例えば、wget -r -l 10 <url> のように指定します。深度レベルを無制限にするには、wget -r -l inf <url> を使用します。wget
    -r -l 10 tomshardware.com

Wget を使用して Windows コマンドラインからファイルをダウンロードする

(画像提供:Tom's Hardware)
  • -k を使ってリンクをローカルファイルのURLに変換します。ウェブサイトをスクレイピングする場合、WgetはHTML内のリンクを自動的にダウンロードしたオフラインコピーへ変換します。例えば、wget -r -k <url> のように指定します。wget
    -r -k tomshardware.com

Wget を使用して Windows コマンドラインからファイルをダウンロードする

(画像提供:Tom's Hardware)
  • -p または --page-requisites を使用すると、すべてのページコンテンツをダウンロードできます。画像、CSS、その他のページコンテンツをすべてオフラインでも利用できるようにウェブサイトを完全にダウンロードしたい場合は、-p または --page-requisites オプションを使用してください。例:wget -r -p <url>.
    wget -r -p tomshardware.com

Wget を使用して Windows コマンドラインからファイルをダウンロードする

(画像提供:Tom's Hardware)

オプションの完全なリストを確認するには、wget --hコマンドを使用してください。また、ダウンロード元のウェブサイトの仕様を尊重し、wait、retry、depth 制限などを使用してサーバーの負荷を可能な限り制限するようにしてください。

SSL 証明書エラーが原因でダウンロードに問題が発生する場合は、Wget バイナリ ファイル (wget.exe) を最新バージョンに更新することを忘れないでください。