No.906 Re[3]:wget で再帰回収 |
発言者: な 発言日: 2003 01/08 17:58 |
> -L には、follow relative links only とありますが、英語をそのままの意味で理解するなら、相対リンクのみをたどる、となりますが、この理解に誤りがあるのでしょうか? 浅学のため、動作しない理由がわかりかねます。なさんがご存知の、follow relative links only 以上の、再帰回収ができない理由、もしくは、もうちょっとヒントを教えていただけますでしょうか。 相対リンクのみを辿る、ということは、相対パス表記のリンクのみを辿ると いう意味です。 たとえば<a href="foo/bar">は辿るけれども、<a href="/path/to/foo/bar">と いうようなリンクは辿らない、ということになります。 取得対象のサイトのリンクが上記のように絶対パスで記述されているなら、 -L オプションで相対リンクのみに制限すると再帰取得を行わないはずです。 > 先にも書いたとおり、とあるサイトのデータ (の一部) を再帰的に取得したいので、そこから、外部に張られているリンク (相対リンクではない絶対リンク) をたどって欲しくないという意味で、-L を追加したものです。 ということであれば、-np オプションと、-D オプションを使用したほうが よいかと思います。 http://www.example.org/foo/bar/ 以下のドキュメントを取得するので あれば、 $ wget -D www.example.org -np -r -l 10 http://www.example.org/foo/bar/ とすれば、外部のホストへのリンク、および上位ディレクトリへのリンクは 辿りません。 なお、/etc/wgetrcなどでspan_hostsがonに設定されていないことは確認して ください。 # defaultではspan_hostsがoff(='-H'を指定しない状態)になっているはず # なので、外部ホストへのリンクは辿らないはずですが、Location: ヘッダ # などで誘導されると、外部ホストへも追跡してしまうようです。 -l オプションについては、ソースを調べたのがかなり以前になるので、 最近の実装がどうなっているか、また何らかの問題があるかもわかりません。 |
▼関連発言 |