理想未来ってなんやねん

娘可愛い。お父さん頑張る。

wget 10段活用

wgetの使い方について、よく忘れるので自分用のメモ。

1.出力ファイルを指定する

出力ファイルを指定するには -O オプションでファイル名を指定します。

$ wget -O filename.html http://www.example.com/

2.標準出力に出力する

標準出力に出力するには -O オプションでファイル名にハイフンを指定します。
又、メッセージを出力しないようにするためには、-qオプションをを指定します。

$ wget -q -O - http://www.example.com/

3.再帰的にダウンロードする

再帰的にダウンロードするには-rオプションを指定します。
リンクをたどる階層数は-lオプションで指定します。

$ wget -r -l 1 http://www.example.com/

ダウンロードするファイルの拡張子は -A オプションで指定できます。

$ wget -r -A jpg,gif,png http://www.example.com/

4.POSTする

POSTは --post-dataオプションでパラメータを渡すことができます。

$ wget --post-data='user=foo&pass=bar' http://www.example.com/

5.REFERERを指定する

リファラは --refererオプションで指定可能。

$ wget --referer='http://www.example.com/' 'http://www.example.com/img/photoXXXX.jpg'

6.UserAgentを偽装する

UserAgentは --user-agentオプションで指定可能。

$ wget --user-agent='Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X; ja-jp) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5' http://www.example.com/

7.送信するヘッダーを指定する

送信するHeaderは --headerオプションで指定可能。

$ wget --header='Host: foo.bar' http://127.0.0.1/

8.サーバーが送信したヘッダーを保存する。

サーバーが送信してきたヘッダーは --save-headersオプションで保存可能。

$ wget --header='Host: foo.bar' http://127.0.0.1/

9.認証が必要なサイトで利用する

Basic認証、Digest認証などで使用する場合、取り敢えず以下の方法でできる。

$ wget --http-user=foo --http-password=bar http://www.example.com/

尚、上記の方法はpsコマンドでパスワードが見えてしまうので安全ではない。

安全に扱うためには ~/.wgetrcに記載し、chmodで保護する。

http_user=foo
http_password=bar

10.Cookieを利用する

Cookieは --save-cookiesオプションでCookieを保存するファイルを指定し、セッションを継続するために --keep-session-cookiesオプションを指定します。
次に、--load-cookiesでCookieを読み込みます。

$ wget --save-cookies=cookies.txt --keep-session-cookies --post-data='user=foo&pass=bar' http://www.example.com/auth/
$ wget --load-cookies=cookies.txt http://www.example.com/download/filenname.txt