Wgetによる効率的なファイルダウンロードとウェブサイトミラーリング

Wgetは、コマンドラインからファイルをダウンロードするための強力なツールです。単一ファイルのダウンロードから、ウェブサイト全体のミラーリングまで、幅広い用途に対応します。

基本ダウンロード機能

単一のファイルをダウンロードするには、URLを指定します。

wget http://example.com/file.iso

ダウンロードしたファイルを別名で保存するには、--output-document (または -O) オプションを使用します。

wget --output-document=local_file.html http://example.com/webpage.html

ファイルを特定のディレクトリに保存するには、--directory-prefix (または -P) オプションを使います。

wget --directory-prefix=downloads/archive http://example.com/data.zip

中断したダウンロードを再開するには、--continue (または -c) オプションを指定します。これにより、既にダウンロード済みの部分からダウンロードが再開されます。

wget --continue http://example.com/large_file.iso
wget -c http://example.com/large_file.iso

ローカルファイルより新しいバージョンのみをダウンロードするには、--timestamping オプションと --continue を組み合わせます。

wget --continue --timestamping http://example.com/latest_version.zip

複数のURLからファイルをダウンロードするには、それらをリストしたテキストファイルを用意し、--input-file (または -i) オプションで指定します。各URLは1行に1つ記述します。

wget --input-file=url_list.txt

連番のファイル名をダウンロードするには、シェルによる拡張機能やWgetの連番指定を利用できます。

wget http://example.com/images/{1..20}.jpg
wget http://example.com/images/prefix-{1..20}-suffix.jpg

ウェブページとその表示に必要なリソース(CSS、画像など)をまとめてダウンロードするには、--page-requisites (-p)、--span-hosts (-H)、--convert-links (-k)、--adjust-extension (-E) オプションを併用します。

wget -p -H -k -E http://example.com/page.html

ウェブサイトミラーリング

ウェブサイト全体をミラーリングするには、--recursive (-r) オプションを使用します。--no-parent (-np) を指定すると、指定したディレクトリより上の階層には移動しません。--execute robots=off (-e robots=off) は、robots.txtを無視する場合に使用します。

wget --execute robots=off --recursive --no-parent --continue --no-clobber http://example.com/
wget -e robots=off -r -np -c -nc http://example.com/

指定したディレクトリから特定の拡張子のファイルのみを再帰的にダウンロードするには、--accept (-A) オプションを使用します。

wget --level=1 --recursive --no-parent --accept mp3,MP3 http://example.com/mp3s/
wget -l 1 -r -np -A mp3,MP3 http://example.com/mp3s/

ウェブサイト上の画像をすべて指定ディレクトリにダウンロードするには、--directory-prefix (-P)、--no-directories (-nd)、--accept (-A) オプションを組み合わせます。

wget --directory-prefix=files/pictures --no-directories --recursive --no-clobber --accept jpg,gif,png,jpeg http://example.com/images/
wget -P files/pictures -nd -r -nc -A jpg,gif,png,jpeg http://example.com/images/

特定のドメインに限定して、PDFファイルのみを再帰的にダウンロードするには、--mirror (-m) と --domains (-D)、--accept (-A) を使用します。

wget --mirror --domains=example.com,files.example.com,docs.example.com --accept=pdf http://example.com/
wget -m -D example.com,files.example.com,docs.example.com -A pdf http://example.com/

特定のディレクトリを除外して、ウェブサイト全体をミラーリングするには、--exclude-directories (-X) オプションを使用します。

wget --recursive --no-clobber --no-parent --exclude-directories /forums,/support http://example.com
wget -r -nc -np -X /forums,/support http://example.com

高度なダウンロード機能

User-AgentやRefererヘッダーを偽装してダウンロードするには、--user-agent および --referer オプションを使用します。

wget --referer=/some/path --user-agent="Mozilla/5.0" http://example.com/protected_page

HTTP Basic認証で保護されたファイルにアクセスするには、--http-user および --http-password オプションを指定します。

wget --http-user=username --http-password=password http://example.com/secret.zip

ログインが必要なページにアクセスするには、--post-data オプションでフォームデータを送信し、Cookieを保存・読み込みます。

wget --cookies=on --save-cookies cookies.txt --keep-session-cookies --post-data 'user=testuser&password=testpass' http://example.com/login.php
wget --cookies=on --load-cookies cookies.txt --keep-session-cookies http://example.com/member_area

ファイルをダウンロードせずに、サーバーからのファイルサイズ情報のみを取得するには、--spider オプションと --server-response (-S) を使用します。

wget --spider --server-response http://example.com/file.iso
wget --spider -S http://example.com/file.iso

ダウンロードせずに、ファイルの内容を標準出力に表示するには、--output-document=- (-O-) と --quiet (-q) を使用します。

wget --output-document=- --quiet http://example.com/robots.txt
wget -O- -q http://example.com/robots.txt

ウェブページの最終更新日時を取得するには、--spider オプションと --server-response (-S) を使用します。

wget --server-response --spider http://example.com/
wget -S --spider http://example.com/

ウェブサイト上のリンクをチェックし、エラーがないか確認するには、--spider オプションと --recursive を使用します。結果は --output-file (-O) でログファイルに保存できます。

wget --output-file=link_check.log --recursive --spider http://example.com
wget -O link_check.log -r --spider http://example.com

主なオプション

  • -V, --version: バージョン情報を表示して終了
  • -h, --help: ヘルプメッセージを表示
  • -b, --background: バックグラウンドで実行
  • -e, --execute=COMMAND: `.wgetrc` 形式のコマンドを実行
  • -o, –output-file=FILE: ログをファイルに書き出し
  • -a, –append-output=FILE: ログをファイルに追記
  • -d, –debug: デバッグ情報を表示
  • -q, –quiet: 静寂モード(出力なし)
  • -v, –verbose: 詳細モード(デフォルト)
  • -nv, –non-verbose: 詳細モードを無効化(静寂モードではない)
  • -i, –input-file=FILE: ファイル内のURLリストからダウンロード
  • -F, –force-html: 入力ファイルをHTMLとして扱う
  • -B, –base=URL: 相対リンクのベースURLを指定
  • –sslcertfile=FILE: SSLクライアント証明書
  • –sslcertkey=KEYFILE: SSLクライアント証明書の秘密鍵
  • –egd-file=FILE: EGDソケットファイル名を指定
  • –bind-address=ADDRESS: ローカルのバインドアドレスを指定
  • -t, –tries=NUMBER: 最大リトライ回数(0は無制限)
  • -O, –output-document=FILE: 出力ファイル名を指定
  • -nc, –no-clobber: 既存ファイルを上書きしない
  • -c, –continue: 中断したダウンロードを再開
  • –progress=TYPE: プログレスバーのタイプを指定
  • -N, –timestamping: タイムスタンプによる更新チェック
  • -S, –server-response: サーバーの応答を表示
  • –spider: ファイルをダウンロードせず、存在確認のみ行う
  • -T, –timeout=SECONDS: タイムアウト秒数
  • -w, –wait=SECONDS: ダウンロード間の待機秒数
  • –waitretry=SECONDS: リトライ間の待機秒数
  • –random-wait: ランダムな待機時間
  • -Y, –proxy=on/off: プロキシの使用を切り替え
  • -Q, –quota=NUMBER: ダウンロード容量制限
  • –limit-rate=RATE: ダウンロード速度制限
  • -nd, –no-directories: ディレクトリ構造を作成しない
  • -x, –force-directories: ディレクトリ構造を強制作成
  • -nH, –no-host-directories: ホスト名ディレクトリを作成しない
  • -P, –directory-prefix=PREFIX: 保存先ディレクトリを指定
  • –cut-dirs=NUMBER: リモートディレクトリの階層をスキップ
  • –http-user=USER: HTTP認証ユーザー名
  • –http-passwd=PASS: HTTP認証パスワード
  • -C, –cache=on/off: サーバー側キャッシュの許可/不許可
  • -E, –html-extension: HTMLファイルを.html拡張子で保存
  • –ignore-length: Content-Lengthヘッダーを無視
  • –header=STRING: カスタムHTTPヘッダーを追加
  • –proxy-user=USER: プロキシ認証ユーザー名
  • –proxy-passwd=PASS: プロキシ認証パスワード
  • –referer=URL: Refererヘッダーを指定
  • -s, –save-headers: HTTPヘッダーをファイルに保存
  • -U, –user-agent=AGENT: User-Agent文字列を指定
  • –no-http-keep-alive: HTTP Keep-Aliveを無効化
  • –cookies=off: Cookieを使用しない
  • –load-cookies=FILE: Cookieファイルを読み込む
  • –save-cookies=FILE: Cookieファイルを保存
  • -nr, –dont-remove-listing: FTPの.listingファイルを削除しない
  • -g, –glob=on/off: ファイル名のglobbingを有効/無効化
  • –passive-ftp: FTPパッシブモードを使用(デフォルト)
  • –active-ftp: FTPアクティブモードを使用
  • –retr-symlinks: FTPでシンボリックリンクをたどる
  • -r, –recursive: 再帰的にダウンロード
  • -l, –level=NUMBER: 再帰深度(infまたは0は無限)
  • –delete-after: ダウンロード後にローカルファイルを削除
  • -k, –convert-links: 相対リンクに変換
  • -K, –backup-converted: 変換前にバックアップを作成
  • -m, –mirror: ミラーリングモード(-r -N -l inf -nr と同等)
  • -p, –page-requisites: ページ表示に必要なリソースをダウンロード
  • -A, –accept=LIST: 許可する拡張子リスト(セミコロン区切り)
  • -R, –reject=LIST: 拒否する拡張子リスト(セミコロン区切り)
  • -D, –domains=LIST: 許可するドメインリスト(セミコロン区切り)
  • –exclude-domains=LIST: 拒否するドメインリスト(セミコロン区切り)
  • –follow-ftp: FTPリンクをたどる
  • –follow-tags=LIST: 追跡するHTMLタグリスト
  • -G, –ignore-tags=LIST: 無視するHTMLタグリスト
  • -H, –span-hosts: ホストをまたいで再帰ダウンロード
  • -L, –relative: 相対リンクのみを追跡
  • -I, –include-directories=LIST: 許可するディレクトリリスト
  • -X, –exclude-directories=LIST: 拒否するディレクトリリスト
  • -np, –no-parent: 親ディレクトリへは移動しない

タグ: wget ダウンロード ミラーリング コマンドライン ウェブスクレイピング

7月28日 02:22 投稿