Wgetのマニュアルを読みましたが、残念ながら私の問題は解決しないようです。誰かが私に役立つことができれば幸いです。
私たちは(例えば)website.com/1/、website.com/2/...などに直接接続する(例えば)website.comウェブサイトを持っています。
これで、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
もちろん、すべてのPDF文書を含む「files」という大きなフォルダが作成されます。
しかし、私はダウンロードされたページに対応する1、2、...、nという名前の別のフォルダで構成することを好みます。合計で約10,000個のPDFファイルをダウンロードするので、これを手動で行う必要はありません。
それでは、WgetにWebサイトのディレクトリ構造ではなくファイルにアクセスするパスに基づいてファイルをクリーンアップするように指示する必要がありますか?
私の説明が明確で実装するのが難しくないことを願っています。
答え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
レベルを下げるために何かを追加することもできます。