2017-12-05 17 views
0

私は、コミュニティのウェブサイトでホストされているいくつかのファイルタイプをアーカイブしようとしています。wgetで特定のファイルタイプをダウンロードしようとするのはどうですか?

私はwget -r -np -nd -e robots=off -l 0 URLを使用して必要なファイルをすべてダウンロードすることができますが、ダウンロードと削除の両方の時間を浪費するために約60,000余分なファイルが残ります。

私は実際には拡張子 "tbt"と "zip"のファイルを探しています。 -A tbt,zipを入力に追加すると、wgetは1つのファイル "index.html.tmp"のみをダウンロードします。これは、指定されたファイルタイプと一致しないため、このファイルをただちに削除し、プロセスが完全に停止し、wgetが終了したことを通知します。 -Aフラグが含まれていない場合、他のファイルをダウンロードしようとしません。

私は間違っていますか? 1つのファイルだけを見ただけでファイルタイプを指定するのはなぜですか?

+0

私はこの種のもののために 'wget'の代わりに[httrack](httwww://www.httrack.com/)を勧めている人もいます。 – larsks

答えて

0

おそらく、私が似たようなことをしようとしたときに打った同じ問題を抱えている可能性があります。 --acceptを使用する場合、wgetは、リンクがファイルまたはディレクトリを参照するかどうかを、それが/で終わるかどうかに基づいて判断します。例えば

、私はfilesという名前のディレクトリ、および持っているウェブページを持っていると言う:

<a href="files">Lots o' files!</a> 

私はwget -rでこれを要求した場合、私は喜んでGET /files、それがあったことがわかりますwgetリンクの束を含んでいるHTML文書は、それらのリンクをダウンロードし続けます。

しかし、私は、コマンドラインに-A zipを追加し、--debugwgetを実行する場合、私は以下を参照してください

つまり
appending ‘http://localhost:8080/files’ to urlpos. 
[...] 
Deciding whether to enqueue "http://localhost:8080/files". 
http://localhost:8080/files (files) does not match acc/rej rules. 
Decided NOT to load it. 

wgetこれはファイル(末尾/)で考え、それはdoesnの受け入れ基準に合致しないため、却下されます。

、それがどのように見えるように、私は、リモートファイルを変更する場合

...

<a href="files/">Lots o' files!</a> 

...その後wgetは、リンクをたどると、必要に応じてファイルをダウンロードします。

wgetを使用する必要がある場合は、この問題の大きな解決策はありません。私のコメントで言及したように、この状況をより優雅に処理できる他のツールがあります。

別の問題が発生している可能性もあります。あなたのコマンドラインに--debugを追加すると、その場合の事が明らかになります。

関連する問題