したがって、wget
ファイルを再帰的にダウンロードする機能がありますが、一度に1つのファイルのみをダウンロードします。
ディレクトリURLを渡し、再帰で見つかった各URLのダウンロードプロセスを作成したいと思います。
私が考えたアプローチの1つは、何とかwget
見つけたURLを印刷してから、そのURLを別のインスタンス(などを介してwget
)に供給することです。wget URL_1 &
wget URL_2 &
どんなアイデアがありますか?
ベストアンサー1
私はこれについて考えましたが、wgetが作業に最適なツールであるとは確信していません。
2022年に同様のツールを使用してこれを行う方法は次のとおりです。子犬HTML解析用に特別に設計されています(子犬の場合、CSSセレクター):
wget -q -O- https://ubuntu.com/download/alternative-downloads \
| pup 'a[href$=".torrent"] attr{href}' \
| aria2c -d ~/Downloads -i -
また、見ることができます
-
-e
/オプション--extract
の使用XPathセレクターデフォルトでは、--css '<selector>'
またはCSSセレクタをサポートしています。--extract 'css("<selector>")'
curl
インターネットリソースに直接アクセスできますが、マイコンピュータよりも少し遅いです。- 非常に寛容なパーサー。間違ったHTMLの場合でも、文句はほとんど見られません。
- 例:
xidel https://www.videlibri.de/xidel.html \ -e '//a[ends-with(@href,"/download")]/@href' # faster, for some reason; don't forget the '-' (read from stdin)! curl -q https://www.videlibri.de/xidel.html \ | xidel -e '//a[ends-with(@href,"/download")]/@href' - # same as above, using CSS selectors + XPath for the attribute curl -q https://www.videlibri.de/xidel.html \ | xidel -e 'css("a[href$=/download]")/@href' -
-
- XPathセレクタの使用
- 〜しなければならない正しい形式のXML / XHTMLを入力として使用してください。
- パイプを通して
xmlstarlet fo -H -R
(再び火rmat、予想される入力は次のとおりです。時間TML、一度試してください右エラー後の回復)は、ほとんどのウェブサイトを修正する必要があります。
- パイプを通して
- 例:
# NB: my version of xmlstarlet doesn't support XPath 'ends-with' curl -s https://ubuntu.com/download/alternative-downloads \ | xmlstarlet fo -H -R 2>/dev/null \ | xmlstarlet sel -t -v '//a[contains(@href, ".torrent")]/@href' -n