私が使用して、次のページから、すべてを一度に、ファイルをダウンロードしたいと思いますcurl
:
http://www.ime.usp.br/~coelho/mac0122-2013/ep2/esqueleto/
試したところcurl http://www.ime.usp.br/~coelho/mac0122-2013/ep2/esqueleto/
、ターミナルに大量の行が返されましたが、ファイルを取得できませんでした。
私が使用して、次のページから、すべてを一度に、ファイルをダウンロードしたいと思いますcurl
:
http://www.ime.usp.br/~coelho/mac0122-2013/ep2/esqueleto/
試したところcurl http://www.ime.usp.br/~coelho/mac0122-2013/ep2/esqueleto/
、ターミナルに大量の行が返されましたが、ファイルを取得できませんでした。
回答:
wget
代わりに使用してください。brew install wget
Homebrewをインストールしている場合、またはsudo port install wget
MacPorts をインストールしている場合は、それをインストールできます。
ディレクトリリストからファイルをダウンロードするには、-r
(再帰)、-np
(親ディレクトリへのリンクをたどらない)を使用し-k
、ダウンロードしたHTMLまたはCSSのリンクがローカルファイルを指すようにします(クレジット@xaccrocheur)。
wget -r -np -k http://www.ime.usp.br/~coelho/mac0122-2013/ep2/esqueleto/
その他の便利なオプション:
-nd
(ディレクトリなし):すべてのファイルを現在のディレクトリにダウンロードします-e robots.off
:robots.txtファイルを無視し、robots.txtファイルをダウンロードしないでください-A png,jpg
:拡張子を持つファイルのみを受け入れるpng
か、jpg
-m
(鏡): -r --timestamping --level inf --no-remove-listing
-nc
、--no-clobber
ファイルが存在する場合、ダウンロードをスキップしますbrew
そしてport
wgetのをインストールするには、私のために動作しません。私は何をすべきか?
-k
は常に機能するとは限りません。たとえば、再帰的にキャプチャしようとしているWebページ上の同じファイルを指す2つのリンクがある場合wget
、最初のインスタンスのリンクのみを変換し、2番目のインスタンスのリンクは変換しないようです。
curl
単一のWebページファイルのみを読み取ることができます。取得した一連の行は、実際にはディレクトリインデックスです(そのURLにアクセスすると、ブラウザにも表示されます)。curl
Unixツールを使用してファイルを取得するには、次のようなものを使用できます
for file in $(curl -s http://www.ime.usp.br/~coelho/mac0122-2013/ep2/esqueleto/ |
grep href |
sed 's/.*href="//' |
sed 's/".*//' |
grep '^[a-zA-Z].*'); do
curl -s -O http://www.ime.usp.br/~coelho/mac0122-2013/ep2/esqueleto/$file
done
これにより、すべてのファイルが現在のディレクトリに取得されます。
より詳細なニーズ(フォルダー/ディレクトリを含むサイトから多数のファイルを取得することを含む)の場合は、wget
(別の回答で既に提案されているように)より良いオプションです。
xmllint --html --xpath '//a/@href'
は、おそらくよりも優れたパーサーですgrep
。
参照:http : //blog.incognitech.in/download-files-from-apache-server-listing-directory/
次のコマンドを使用できます。
wget --execute="robots = off" --mirror --convert-links --no-parent --wait=5 <website-url>
wget
:CURLリクエストを作成し、ローカルファイルをリモートファイルにダウンロードする簡単なコマンド。--execute="robots = off"
:これにより、ページをクロールするときにrobots.txtファイルが無視されます。すべてのファイルを取得していない場合に役立ちます。--mirror
:このオプションは、基本的に、指定されたURLのディレクトリ構造をミラーリングします。それは次のこと-N -r -l inf --no-remove-listing
を意味するショートカットです:
-N
:ローカルよりも新しいファイルでない限り、ファイルを再取得しないでください-r
:再帰的なダウンロードを指定する-l inf
:最大再帰深度(infまたは無限の場合は0)--no-remove-listing
: '.listing'ファイルを削除しないでください--convert-links
:ダウンロードしたHTMLまたはCSSでリンクを作成してローカルファイルを指す--no-parent
:親ディレクトリに登らないでください--wait=5
:取得の間に5秒待機します。サーバーをスラッシングしないようにします。<website-url>
:これは、ファイルのダウンロード元のWebサイトのURLです。ハッピーダウンロード:スマイリー:
GUIを使用してアプリケーションを使用したい人には、Mac OS X用の安価なシェアウェアプログラムDeepVacuumwget
があります。これは、一般的に必要なタスクを処理できるプリセットのリストで、ユーザーフレンドリーな方法で実装します。独自のカスタム構成をプリセットとして保存することもできます。
wget -r -np -k http://your.website.com/specific/directory
。トリックは-k
、ローカル表示用にリンク(画像など)を変換するために使用することです。