web-dev-qa-db-ja.com

ファイルサーバーからファイルのリストをダウンロードする方法

このようなファイルサーバーからファイルのリストをダウンロードするにはどうすればよいですか http://www.Apache.org/dist/httpd/binaries/

Wgetを使用できると思いますが、すべてのリンクとHTMLファイルも取得しようとします。これを達成するためのより良いツールはありますか?

10
Hamilton

ページのクロール時にダウンロードするファイル拡張子wgetを指定できます。

wget -r -A Zip,rpm,tar.gz www.site.com/startpage.html

これは再帰的な検索を実行し、.Zip.rpm.tar.gz拡張子。

12
John T

(まだ)それらをフェッチせずにサーバー上のファイルのリストが本当に必要だと仮定します:

%> wget -r -np --spider http://www.Apache.org/dist/httpd/binaries/ 2>&1 | awk -f filter.awk | uniq

一方、「filter.awk」は次のようになります

 /^--.*-- http:\/\ /.* [^\/] $/{u = $ 3; } 
/^ Length:[[:digit:]] +/{print u; } 

次に、おそらくいくつかのエントリを除外する必要があります

"http://www.Apache.org/dist/httpd/binaries/?C=N;O=D"
8
akira

参照: 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:再帰の最大深度(無限または無限の場合は0)
    • --no-remove-listing:「.listing」ファイルを削除しないでください
  • --convert-links:ダウンロードしたHTMLまたはCSSのリンクがローカルファイルを指すようにします
  • --no-parent:親ディレクトリに上がらない
  • --wait=5:取得の間隔は5秒です。サーバーをスラッシュしないように。
  • <website-url>:これは、ファイルのダウンロード元のWebサイトのURLです。

ハッピーダウンロード:smiley:

0
Udit Desai