自分がたまに使うけど、よく忘れる機能について。 全然使ったことない人はinfo見てください。 (ここに書いてある内容も、多くは 'Guru Usage' あたりに載ってます)
[2004/04/05追記]
久々の更新ですが、 気づいたら2003年9月頃にwget 1.9.1が出てました。
POSTが出来るようになって、ついにcurlに追い付いたみたいです。 wgetの方がcookieを扱うのが少し面倒だけど、 やりたいことは全部できるんじゃないでしょうか。
[2001/12/28追記]
気づいたらwget 1.8.1が出てます。 こんな枯れたソフトをよくhackする気になるもんだわ。感謝。
最初のはでかい変更ですので、重宝する人も多いのでは。 いまのところ問題なく動いています。 これ以外は、コードのrefineが主なようです。 1.8は結構気になるバグがあったので、捨てましょう。
[2001/09/23追記]
気づいたらwget 1.7が出てます。もはや死角は殆どないといえます。 POSTができないことくらいか。
[2001/03/31追記]
なんか、wget 1.6が出てまして、10秒パッチの内容は、大半が実現されています。 具体的に言うと、
wgetのデフォルトの動作は不便なことも多いので、 .wgetrcにあれこれ書いて、デフォルトの挙動を変えることができます。
以上、
user_agent = Mozilla/4.06 [en] (Win95; I) robots = off timeout = 100 passive_ftp = on #http_proxy = http://cache.hnw.jp:8080/ #ftp_proxy = http://cache.hnw.jp:8080/
そのURLより下層を再帰的に全部取ってくる指定。 ./www.geocities.com/Tokyo/Ginza/5432/index.html のような ディレクトリ構造で保存をしてくれます。 下に挙げたオプションと組み合わせると幸せかもしれません。
-rで前に取ったときと同じ場所で使って、 前とり損ねたものだけ取ってくる指定。 回線状態が劣悪だったとか、 気が狂ってC-cを押したとかいうときに、 前のオプションそのままで-ncをつければOK。
前回取ったファイルが更新されていても 新たに取りにはいかないので注意が必要。
HTMLに含まれる絶対パスを相対パスにする指定。 -r との組み合わせで使うと、 リンク先がローカルに保存してあればそのファイルへのリンクになるので、 ローカルで見るときに便利です。
-r 使用時に、よそのホストへのリンクを辿るかどうかの指定 (デフォルトでは辿りません)。 これを使うときは、 世界中のファイルを落とさないよう、細心の注意を払いましょう。 例えば、次のオプションと組み合わせるなど。
再帰的にファイル取得する際、指定されたタグについて辿らないようにする指定。 -G img,body と書いて、HTML中のsrc=で指定された絵を取らない、という技がなかなか有効。 逆に、-rl1 -k -G a,area で、そのページの絵だけ取ってローカルで見る、なんて技もある。 (aとareaを除外するだけだと不足してるんだけど、実用上は十分)
再帰的にファイル取得する際、 *.cgi?...を辿ってると無限に同じファイルをダウンロードしたりすることがある。 こんなときに -R '*.cgi' などとすれば辿らなくなる。 使いどころによっては非常に便利。
前に取ったときと同じ場所で使う。 新しいものだけ取ってくる。 ftpでとる際、-r との組み合わせで使うと効果大でしょう。
途中まで落としてあるものに対して、以降をpartial getする指定。
よほどへろへろなサーバーじゃない限り使えます。 もちろんftpでも使えます。
GETしたブツを標準出力に出す指定。
他にも、レスポンスヘッダだけが見たいときに -O/dev/null -S とかね。
ユーザーエージェントの指定。
上の例なら i-mode のふり。 または、--user-agent='Mozilla/4.06 [en] (Win95; I)' とか。
ユーザー名/パスワードを指定。
http://user:passwd@host/ みたいなURLを GET するより、 このオプションを使った方がいいと思う。 サーバとしゃべる時にはリクエストヘッダに書かれる情報なんだし、 妙なURLを書くとURLエンコーディングの関係で面倒かもしれないから。
Q: レスポンスへッダが-Sで見られるのはいいのですが、 リクエストへッダを見るオプションはないのですか?
A: ないです。 どうしても見てみたかったら、 -dでデバッグログを出せば、なんとか見られます。
hanawa <y@hnw.jp>$Date: 2004-05-14 07:28:00 $