我尝试从某些网站的几个画廊中抓取图片。我不知道有多少个文件,但我知道文件是连续命名的。所以我使用这样的正则表达式:
wget http://example.org/some_path_to_gallery_x/DSC{0001..9999}.jpg
仍然有可能丢失某些文件,但如果连续丢失超过 10 个或 N 个文件,则图库显然会到达末尾。如何wget
在那一刻中止以避免不必要的流量和运行时间,以便我可以切换到另一个画廊路径?
到目前为止,我wget
脑子里只有一个 for 循环、一个计数器和退出代码处理。但我在 BASH 方面太弱了。或者可能有一些神奇的wget
钥匙?
更新:一个 BASH 脚本。
#!/bin/bash
G_PATH=$1
MAX_MISSING=10
C_ABORT=$MAX_MISSING
for i in {0001..9999}
do
wget 'http://example.org/'"${G_PATH}"/DSC${i}.jpg 2>/dev/null
if [ $? -eq 0 ]
then
C_ABORT=$MAX_MISSING
else
C_ABORT=$((C_ABORT-1))
if [ $C_ABORT -eq 0 ]
then
echo break at DSC$i.jpg
break
else
echo DSC$i.jpg is missing
fi
fi
done