
Wget のマニュアルを読みましたが、残念ながら私の問題は解決されていないようです。どなたか少しでも助けていただければ幸いです。
たとえば、website.com という Web サイトがあり、それがたとえば website.com/1/、website.com/2/ などに直接リンクしているとします。
現在、各ページ website.com/r/ (r は整数) は、多数の PDF ドキュメントにリンクしています。これらのドキュメントは、website.com/r/doc-i.pdf にあるのが便利ですが、すべて website.com/files/doc-i.pdf にあります。
したがって、コマンドを実行するとwget -r -l 2 -A pdf website.com
、当然のことながら、「files」という名前の大きなフォルダーが作成され、その中にすべての PDF ドキュメントが含まれます。
ただし、ダウンロード元のページに対応する 1、2、...、n という名前の異なるフォルダーに整理される方がはるかに望ましいです。合計で約 10,000 個の PDF ファイルをダウンロードすることになるため、これを手動で行うのは避けたいです。
では、Web サイトのディレクトリ構造ではなく、ファイルに到達するまでのルートに基づいてファイルを整理するように Wget に指示するにはどうすればよいでしょうか?
私の説明が明確であり、これを実現するのがそれほど難しくないことを願っています。
答え1
(未テスト) 以下は若干の調整が必要ですが、単なる一般的なアイデアです。
### get level1
wget -r -l website.com/
#### for each html file otained,
for a in $(find website.com -name '*.html' )
do
### get level 2 but prefix it with the base name
b=$(basename $a)
wget -P $b -r -l 1 -A pdf http://$a
done
- おそらく発見には多少の調整が必要になるだろう
mv $b/website.com/files FINAL/$b
レベルを下げるために何かを追加するかもしれません