私たちの組織のグラフィックストアWebページからすべてのグラフィックファイルをダウンロードしたいと思います。彼らはイラストレーターです(.ai) 型と Corel Draw(.cdr) 形式です。
これらは直接ハイパーリンクで接続されています(たとえば<a href="http://server/path-to-file.ai">...</a>
。
答え1
wget
これを直接サポートする機能が含まれています。
wget -r -A "*.ai,*.cdr" 'address-of-page-with-hyperlinks'
-r
再帰モードを有効にして、指定されたURL以外のファイルをダウンロードし、-A
最終的にダウンロードおよび保持されるファイルを制限します。
答え2
このページを読む
curl
ハイパーリンクでフィルタリングします
grep
。これはフォーマットが一貫しているという事実を利用します(例えば<a href="..."
、HTML/XMLパーサー本物使用すべきもう少し複雑な場合。Cut Hyperlink Address を使用して
grep -o
再grep
フィルタリングを使用して、必要な拡張とプロトコルをターゲットとするリンクのみを抽出します。これらの結果ファイルをダウンロードします
wget
(またはcurl
出力が指定されている場合に使用)。また、echo
コンソールのURLも提供します。
便宜上、スクリプトでフィルタリングする順序は、上記とまったく同じではありません。
吹く:
#!/bin/bash
while read url; do
# Echo URL to terminal
echo "${url}"
# Download files
wget -q "${url}"
done < <(
# Get page
curl -s 'address-of-page-with-hyperlinks' | \
# Filter hyperlinks
grep -Po 'href="http://[^"]+\.(cdr|ai)"' | \
grep -Po 'http://[^"]+'
)