回答:
HTTPには実際にはディレクトリの概念がありません。最初の3つ(http://example.com/
)以外のスラッシュは、..
相対URL を除いて特別な意味を持ちません。したがって、サーバーが特定の形式に従わない限り、「指定されたディレクトリ内のすべてのファイルをダウンロードする」方法はありません。
サイト全体をダウンロードする場合は、メインページのすべてのリンクを再帰的にたどることが最善の策です。Curlではできませんが、wgetではできます。これは、Webサイトがあまり動的でない場合に機能します(特に、wgetはJavascriptコードによって構築されたリンクを表示しません)。で始まり、wget -r http://example.com/
さらに関連するオプション(再帰の深さ、除外リストなど)については、wgetマニュアルの「再帰的な検索オプション」と「再帰的な受け入れ/拒否オプション」を参照してください。
Webサイトが自動ダウンロードをブロックしようとする場合、ユーザーエージェント文字列(-U Mozilla
)を変更し、無視する必要がある場合があります(robots.txt
空のファイルexample.com/robots.txt
を作成し、-nc
wgetがサーバーからのダウンロードを試行しないようにオプションを使用します)。
-e robots=off
。または、で拒否することでダウンロードを回避できます-R "robots.txt"
。
これは不可能です。Webサーバーがディレクトリの内容を返す標準の、一般に実装されている方法はありません。ほとんどのサーバーは、そうするように構成されている場合、ディレクトリのHTMLインデックスを生成しますが、この出力は標準ではなく、いかなる方法でも保証されていません。このHTMLを解析できますが、形式はサーバーごとに変更され、常に有効になるとは限らないことに注意してください。
wget
またはを使用しcurl
ますか?
あなたはここでウェブサイトリッパーの使用を見つけるかもしれません、これはすべてをダウンロードして、ローカル使用のためにコンテンツ/内部リンクを修正します。良いものはここで見つけることができます:http://www.httrack.com