自分用まとめ
目次
curlとwgetの主な共通点
Webサーバーからコンテンツをダウンロードできるコマンドラインツール
curlとwgetの主な違い
-
curl
:対応プロトコルの種類が多い(wget
はHTTP、HTTPS、FTPの3種類だけ)1、複雑なデータ転送やAPIとの連携に適する2 -
wget
:再帰的なダウンロード(ディレクトリ全体を探索して中のファイルを全て取得する)ができる134、バッチ処理による複数のファイルのダウンロードに適する2
curlコマンドの使い方
基本5:
curl -OL [file_url]
よく使うオプション6:
-o 取得したデータを指定したファイル名で出力する
-O URLのファイル名でダウンロード
-L リダイレクトがあったらリダイレクト先の情報を取る
-u 認証に用いるユーザー名およびパスワードを指定する
-v 処理状況の更なる詳細や説明を出力させる
-# プログレスバーを簡易表示させる
サーバー認証つきのURLにログインしてファイルダウンロード4:
curl -O -u [username]:[password] [file_url]
エラーが発生したときや、curlがどのようなことを行っているのか理解したいとき4:
curl -O -v [file_url]
進捗をより簡易的に見たい(ダウンロードの進行の%表示だけでいい)とき4:
curl -O -# [file_url]
同じリモートURLを持つ複数のファイル(e.g. 1.jpg、2.jpg、3.jpg)をダウンロード4:
curl -O "https://example.com/images/{1.jpg,2.jpg,3.jpg}"
ver.2 同じリモートURLを持つ複数のファイル(e.g. 1.jpg、2.jpg、3.jpg)をダウンロード4:
curl -O "https://example.com/files/file[1-3].jpg"
異なるURLから複数のファイルをダウンロード4:
curl -O [file_url_1] -O [file_url_2]
保存先(ファイルパス、ファイル名)を指定してダウンロード4:
curl [file_url] > [~/file_path/file_name]
wgetコマンドの使い方
基本:
wget [file_url]
よく使うオプション7:
-r 再帰ダウンロード(すべてのファイルをダウンロード)
-P 取得したデータの保存先を指定する
-O 取得したデータを指定したファイル名で出力する
-c 中断されたダウンロードを続行する
wget [file_url] -O [~/file_url/file_name]
ファイルの保存先を指定してダウンロード:
wget -P [file_path] [file_url]
複数のファイルをダウンロード3:
複数のファイルのURLを改行して列記したファイルを作成し、保存して閉じる:
vi [url_file.txt]
作成したファイル名を指定してwgetを実行:
wget -i [url_file.txt]
同じリモートURLを持つ複数のファイル(e.g. H1001.jpg、H1002.jpg、H1003.jpg)をダウンロード7:
wget http://example.com/H100{1..3}.jpg
中断されたダウンロードを続行3*:
wget -c [file_url]
*ダウンロードが中断された場合は、ファイル全体をダウンロードし直すのではなく、以下のように、-cオプションを指定してコマンドを実行するだけでいい3。
中断された複数のファイルのダウンロードを続行3:
wget -c -i [url_file.txt]
再帰ダウンロード(すべてのファイルをダウンロード)1:
wget -r [file_url]
取得する階層のレベルを指定して再帰ダウンロード1:
wget -r -l 1 [file_url]
下位ディレクトリのすべてのファイルをダウンロード8*:
wget -r -np [file_url]
*-npで上位ディレクトリへは遡らなくなる。
リンクのある外部サイトまで含めてすべてのファイルをダウンロード8*:
wget -r -H [file_url]
*-Hでリンクのある外部サイトまで取得する。
サーバー認証つきのURLにログインしてファイルダウンロード7:
wget --http-user=[username] --http-passwd=[password] [file_url]
OAuth認証のかかったサーバはcookiesで対応する7:
wget --save-cookies cookies.txt --post-data 'user=foo&password=bar' http://server.com/auth.php
wget --load-cookies cookies.txt -p http://server.com/interesting/article.php
PDBファイルをダウンロード
PDBファイル(PDBID:XXXX)をcurl
コマンドでダウンロード:
curl -O https://files.rcsb.org/download/XXXX.pdb
PDBファイル(PDBID:XXXX)をwget
コマンドでダウンロード:
wget https://files.rcsb.org/download/XXXX.pdb