Wgetは、Webからファイルをダウンロードするための無料のユーティリティです。インターネットからデータを取得してファイルに保存するか、端末に表示します。これは文字通り、FirefoxやChromiumなどのWebブラウザが行うことでもありますが、デフォルトではレンダリングされます。 グラフィカルウィンドウ内の情報であり、通常、ユーザーがそれらをアクティブに制御する必要があります。 wget
ユーティリティは非対話型になるように設計されています。つまり、wget
をスクリプト化またはスケジュールできます。 コンピュータを使用しているかどうかに関係なく、ファイルをダウンロードします。
wgetでファイルをダウンロード
wget
でファイルをダウンロードできます 特定のURLへのリンクを提供することによって。デフォルトがindex.html
のURLを指定した場合 、次にインデックスページがダウンロードされます。デフォルトでは、ファイルは現在の作業ディレクトリにある同じ名前のファイルにダウンロードされます。
$ wget http://example.com
--2021-09-20 17:23:47-- http://example.com/
Resolving example.com... 93.184.216.34, 2606:2800:220:1:248:1893:25c8:1946
Connecting to example.com|93.184.216.34|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1256 (1.2K) [text/html]
Saving to: 'index.html'
wget
を作成できます データを標準出力(stdout
)に送信します )代わりに--output-document
を使用します ダッシュ付き-
キャラクター:
$ wget http://example.com --output-document - | head -n4
<!doctype html>
<html>
<head>
<title>Example Domain</title>
--output-document
を使用できます オプション(-O
略して)ダウンロードに好きな名前を付ける:
$ wget http://example.com --output-document foo.html
部分的なダウンロードを続行
非常に大きなファイルをダウンロードしている場合は、ダウンロードを中断する必要がある場合があります。 --continue
を使用 (-c
略して)、wget
ダウンロードが中断した場所を特定し、ファイル転送を続行できます。つまり、次に4 GBのLinuxディストリビューションISOをダウンロードするときに、問題が発生したときに最初に戻る必要はありません。
$ wget --continue https://example.com/linux-distro.iso
一連のファイルをダウンロードする
1つの大きなファイルではなく、ダウンロードする必要のある複数のファイルの場合は、wget
それであなたを助けることができます。ダウンロードするファイルの場所とファイル名のパターンがわかっている場合は、Bash構文を使用して、一連のファイル名を表す整数の範囲間の開始点と終了点を指定できます。
$ wget http://example.com/file_{1..4}.webp
サイト全体をミラーリングする
--mirror
を使用して、ディレクトリ構造を含むサイト全体をダウンロードできます。 オプション。このオプションは、--recursive --level inf --timestamping --no-remove-listing
を実行するのと同じです。 、つまり、無限に再帰的であるため、指定したドメインですべてを取得できます。 Webサイトの古さによっては、思ったよりもはるかに多くのコンテンツを取得している可能性があります。
wget
を使用している場合 サイトをアーカイブするには、オプション--no-cookies --page-requisites --convert-links
また、すべてのページが新鮮で完全であり、サイトのコピーが多かれ少なかれ自己完結していることを確認するのにも役立ちます。
HTMLヘッダーを変更する
データ交換に使用されるプロトコルには、コンピューターが通信するために送信するパケットに埋め込まれた多くのメタデータがあります。 HTTPヘッダーは、データの最初の部分のコンポーネントです。 Webサイトを閲覧すると、ブラウザはHTTPリクエストヘッダーを送信します。 --debug
を使用します wget
のヘッダー情報を確認するオプション リクエストごとに送信します:
$ wget --debug example.com
---request begin---
GET / HTTP/1.1
User-Agent: Wget/1.19.5 (linux-gnu)
Accept: */*
Accept-Encoding: identity
Host: example.com
Connection: Keep-Alive
---request end---
--header
を使用してリクエストヘッダーを変更できます オプション。たとえば、テストや、特定のユーザーエージェントに対してのみ正しく機能する、コーディングが不十分なサイトを説明するために、特定のブラウザを模倣すると便利な場合があります。
Windowsで実行されているMicrosoftEdgeとして識別するには:
$ wget --debug --header="User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.59" http://example.com
特定のモバイルデバイスになりすますこともできます:
$ wget --debug \
--header="User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 13_5_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.1 Mobile/15E148 Safari/604.1" \
http://example.com
応答ヘッダーの表示
ヘッダー情報がブラウザー要求で送信されるのと同じように、ヘッダー情報も応答に含まれます。 --debug
を使用して応答ヘッダーを確認できます オプション:
$ wget --debug example.com
[...]
---response begin---
HTTP/1.1 200 OK
Accept-Ranges: bytes
Age: 188102
Cache-Control: max-age=604800
Content-Type: text/html; charset=UTF-8
Etag: "3147526947"
Server: ECS (sab/574F)
Vary: Accept-Encoding
X-Cache: HIT
Content-Length: 1256
---response end---
200 OK
Registered socket 3 for persistent reuse.
URI content encoding = 'UTF-8'
Length: 1256 (1.2K) [text/html]
Saving to: 'index.html'
301応答への応答
200応答コードは、すべてが期待どおりに機能したことを意味します。一方、301応答は、URLが永続的に別の場所に移動されたことを意味します。これは、Webサイト管理者が「トレイル」を残したままコンテンツを再配置して、古い場所にアクセスする人々が引き続きコンテンツを見つけられるようにするための一般的な方法です。デフォルトでは、wget
リダイレクトに従います。これはおそらく、通常はそれを実行したいことです。
ただし、どのwget
を制御することはできます --max-redirect
で301応答が発生した場合に実行されます オプション。 0
に設定できます リダイレクトを追跡しない:
$ wget --max-redirect 0 http://iana.org
--2021-09-21 11:01:35-- http://iana.org/
Resolving iana.org... 192.0.43.8, 2001:500:88:200::8
Connecting to iana.org|192.0.43.8|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://www.iana.org/ [following]
0 redirections exceeded.
または、他の数値に設定して、リダイレクトの数を制御することもできますwget
短縮URLを拡張する
--max-redirect
オプションは、実際にアクセスする前に短縮URLを確認するのに役立ちます。短縮URLは、ユーザーが長いURLをコピーして貼り付けることができない印刷メディアや、文字数制限のあるソーシャルネットワークで役立ちます(これは、Mastodonのような最新のオープンソースソーシャルネットワークではそれほど問題にはなりません。 )。ただし、目的地が本質的に隠されているため、少し危険な場合もあります。 --head
を組み合わせることにより HTTPヘッダーと--location
のみを表示するオプション URLの最終的な宛先を解明するオプションを使用すると、リソース全体をロードせずに短縮URLを確認できます。
$ wget --max-redirect 0 "https://bit.ly/2yDyS4T"
--2021-09-21 11:32:04-- https://bit.ly/2yDyS4T
Resolving bit.ly... 67.199.248.10, 67.199.248.11
Connecting to bit.ly|67.199.248.10|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://example.com/ [following]
0 redirections exceeded.
その他のLinuxリソース
- Linuxコマンドのチートシート
- 高度なLinuxコマンドのチートシート
- 無料のオンラインコース:RHELの技術概要
- Linuxネットワーキングのチートシート
- SELinuxチートシート
- Linuxの一般的なコマンドのチートシート
- Linuxコンテナとは何ですか?
- 最新のLinux記事
場所で始まる出力の最後から2番目の行 、目的の目的地を明らかにします。
wgetを使用する
Webを単一のコマンドとして探索するプロセスについて考える練習をしたら、wget
グラフィカルインターフェイスに煩わされることなく、インターネットから必要な情報を取得するための高速で効率的な方法になります。通常のワークフローに組み込むために、一般的なwget
を使用してチートシートを作成しました。 APIのクエリに使用する方法の概要を含む、使用法と構文。 Linuxのwget
をダウンロードします ここに虎の巻があります。