wgetの--recursiveと--accept
wgetで特定のディレクトリ以下で特定の拡張子のファイルをダウンロードしたい。
こんなオプションで実行していたんですが、どうも階層をたどってダウンロードしてくれない。
$ wget --mirror --accept=pdf
単純に--mirrorだけなら階層をたどってちゃんとダウンロードしてくれる。
動作ログをみていると、wgetの動作としては--acceptで指定された拡張子のURLだけをGETするのではなくて、--acceptで指定されていないURLはGETした後に削除するという挙動をしている模様。
おそらくだけど、http://www.example.com/index.html 中に http://www.example.com/pdfs/hoge.pdfというリンクが書いてあったとしても--acceptでhtmlが指定されていないのでindex.htmlはGETしてから削除、そうするとpdfs/hoge.pdfのリンクがわからないのでGETできない。。っていうことだと思われます。
とりあえずは--acceptを削除して全部GETするようにして、不要なものは別手段で削除するようにしました。