wgetとcurlの根本的な違い
UNIXの代表的なダウンローダにwgetとcurlがあります。
たいていの場合どんなOSでも、どちらかのソフトがインストールされているのではないかと思います。
しかし、この2つのダウンローダの機能は、一見似ているようにも見えますが、実はそれぞれに特徴が見られるので、今日はそれについて解説してみます。
wgetの特徴
wgetのスペルは「片手でもコマンドできる」ということもあって、多くの人から気に入られています。
そんなwgetの特徴として、最も際立っているのが、クローラとして動作可能という点です。
オプションで-rを付加してやることで再帰的に動作し、-lでその深さを指定することができます。
また、-Aや-Rを利用すれば、ダウンロードする拡張子のホワイトリストとブラックリストを指定することも可能です。
つまり、特定のサイト内に散らばって存在するファイルを、拡張子によって指定ダウンロードできるのです。
curlには、htmlに記述されているリンクをたどっていく機能はないので、こんなことはできません。
また、自分のサイトのファイルをダウンロードしてミラーリングを行おうという場合にも、やはりwgetに軍配が上がります。
# -r:再帰的に -A:拡張子を指定 -l:リンクの階層を指定 wget -r -A jpg,png,gif,bmp -l 3 http://www.abc.com/ # -m:ミラーリング wget -m http://www.abc.com/ # --spideer:再帰的にクローリングするけれど、ダウンロードはしない wget --spider http://www.abc.com/
curlの特徴
curlの特徴は、対応しているプロトコルや、機能の量にあります。
HTTP、HTTPS、FTP、FTPS、SCP、SFTP、TFTP、DICT、TELNET、LDAP、FILEと、多くの拡張子に対応している上、プロキシ、ユーザー認証、FTPアップロード、HTTP POST、SSL接続などができてしまう優れものです。
そして、その上、もう1つの優れた機能があります。
curlには連番ファイルのダウンロードが可能です。
wgetでこれをやろうとしても、自分でテキストファイルにURLのリストを作って、-iオプションで入力するしかありません。
その点、curlは始めから連番ファイルのダウンロードができるようになっているので、ネットからのダウンロードに重宝します。
# 1〜100までのファイル curl -O http://www.abc.com/file_[1-100].jpg # a〜zまでのファイル curl -O http://www.abc.com/file_[a-z].jpg # 1〜100までを10きざみで curl -O http://www.abc.com/file_[1-100:10].jpg # one,two,threeで置き換えて curl -O http://www.abc.com/file_{one,two,three}.jpg