[home] [back]


wget の使い方

自分がたまに使うけど、よく忘れる機能について。 全然使ったことない人はinfo見てください。 (ここに書いてある内容も、多くは 'Guru Usage' あたりに載ってます)


wget 1.9.1 released

[2004/04/05追記]

久々の更新ですが、 気づいたら2003年9月頃にwget 1.9.1が出てました

POSTが出来るようになって、ついにcurlに追い付いたみたいです。 wgetの方がcookieを扱うのが少し面倒だけど、 やりたいことは全部できるんじゃないでしょうか。


wget 1.8.1 released

[2001/12/28追記]

気づいたらwget 1.8.1が出てます。 こんな枯れたソフトをよくhackする気になるもんだわ。感謝。

最初のはでかい変更ですので、重宝する人も多いのでは。 いまのところ問題なく動いています。 これ以外は、コードのrefineが主なようです。 1.8は結構気になるバグがあったので、捨てましょう。


wget 1.7 released

[2001/09/23追記]

気づいたらwget 1.7が出てます。もはや死角は殆どないといえます。 POSTができないことくらいか。


wget 1.6 released

[2001/03/31追記]

なんか、wget 1.6が出てまして10秒パッチの内容は、大半が実現されています。 具体的に言うと、


.wgetrc

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/

-r -l0 -np

そのURLより下層を再帰的に全部取ってくる指定。 ./www.geocities.com/Tokyo/Ginza/5432/index.html のような ディレクトリ構造で保存をしてくれます。 下に挙げたオプションと組み合わせると幸せかもしれません。

-nH
ホスト名のディレクトリを掘らないようにする
--cut-dirs=数字
ディレクトリをn段掘らなくする。 まず使わないけど…

-nc

-rで前に取ったときと同じ場所で使って、 前とり損ねたものだけ取ってくる指定。 回線状態が劣悪だったとか、 気が狂ってC-cを押したとかいうときに、 前のオプションそのままで-ncをつければOK。

前回取ったファイルが更新されていても 新たに取りにはいかないので注意が必要。


-k

HTMLに含まれる絶対パスを相対パスにする指定。 -r との組み合わせで使うと、 リンク先がローカルに保存してあればそのファイルへのリンクになるので、 ローカルで見るときに便利です。


-H

-r 使用時に、よそのホストへのリンクを辿るかどうかの指定 (デフォルトでは辿りません)。 これを使うときは、 世界中のファイルを落とさないよう、細心の注意を払いましょう。 例えば、次のオプションと組み合わせるなど。

-l
リンクを再帰的に辿る段数(0を指定すると無制限/デフォルトは5)
-Q
落とす最大量を指定
-D
リンクを辿るホストを制限

-G

再帰的にファイル取得する際、指定されたタグについて辿らないようにする指定。 -G img,body と書いて、HTML中のsrc=で指定された絵を取らない、という技がなかなか有効。 逆に、-rl1 -k -G a,area で、そのページの絵だけ取ってローカルで見る、なんて技もある。 (aとareaを除外するだけだと不足してるんだけど、実用上は十分)


-R

再帰的にファイル取得する際、 *.cgi?...を辿ってると無限に同じファイルをダウンロードしたりすることがある。 こんなときに -R '*.cgi' などとすれば辿らなくなる。 使いどころによっては非常に便利。


-N

前に取ったときと同じ場所で使う。 新しいものだけ取ってくる。 ftpでとる際、-r との組み合わせで使うと効果大でしょう。


-c

途中まで落としてあるものに対して、以降をpartial getする指定。

よほどへろへろなサーバーじゃない限り使えます。 もちろんftpでも使えます。


-O-

GETしたブツを標準出力に出す指定。

他にも、レスポンスヘッダだけが見たいときに -O/dev/null -S とかね。


--user-agent=DoCoMo/1.0/F502i

ユーザーエージェントの指定。

上の例なら i-mode のふり。 または、--user-agent='Mozilla/4.06 [en] (Win95; I)' とか。


--http-user=ginza5432 --http-passwd=xxxx

ユーザー名/パスワードを指定。

http://user:passwd@host/ みたいなURLを GET するより、 このオプションを使った方がいいと思う。 サーバとしゃべる時にはリクエストヘッダに書かれる情報なんだし、 妙なURLを書くとURLエンコーディングの関係で面倒かもしれないから。


FAQ(その他)

Q: レスポンスへッダが-Sで見られるのはいいのですが、 リクエストへッダを見るオプションはないのですか?

A: ないです。 どうしても見てみたかったら、 -dでデバッグログを出せば、なんとか見られます。

hanawa <y@hnw.jp>

$Date: 2004-05-14 07:28:00 $