我制作了这个脚本来从数据库下载.jpg文件:
for (( i = 1; i <= 9; i +=1))
do
wget http://archives.cg66.fr/mdr/index.php/docnumserv/getSubImage/0/0/0/-archives-009NUM_Etat_civil-Images---LLUPIA-2E1700_1702-FRAD066_2E1700_1702_000$i.jpg/0/100/0/100/100/100/100/100/2300/1500/0/100
done
由于.jpg扩展名后的“ / 0/100/0/100/100 ...”,结果为:
9个文件名为:100,100.1,100.2,100.3 ... 100.9
我会找到一种方法来拥有9个.jpg文件,分别命名为0001.jpg,0002.jpg,0003.jpg ... 0009.jpg
您能给我些帮助或建议吗?
您可以尝试以下方式:
~$ URL1="http://archives.cg66.fr/mdr/index.php/docnumserv/getSubImage/0/0/0/-archives-009NUM_Etat_civil-Images---LLUPIA-2E1700_1702-FRAD066_2E1700_1702"
~$ URL2="0/100/0/100/100/100/100/100/2300/1500/0/100"
~$ for I in $(seq -w 0001 0009)
do
wget -O "${I}.jpg" "${URL1}_${I}.jpg/${URL2}"
done
要i
使用三个前导零填充变量,请使用seq -w 0001 0009
。要使用正确的文件名下载图像,请使用wget -O "${i}.jpg" ${URL}
。这项工作还可以处理9个以上的图像,例如。产生一个由1到999的数字序列并带有前导零(0001 ... 0099 ... 0999
)的命令变成seq -w 0001 0999
。
请参阅man seq
和man wget
以获得文档(此处和此处在线)。
当然,URL不能在变量${i}
和下划线之间包含前导零,否则wget
命令将返回错误页面。
为此,我从这个改变的网址:..._1702_000$i.jpg/0/100/...
这样:..._1702_${i}.jpg/0/100/...
。
下载的文件:
~$ ls -l
total 20404
-rw-r--r-- 1 ale ale 2408227 Oct 9 22:38 0001.jpg
-rw-r--r-- 1 ale ale 2422199 Oct 9 22:38 0002.jpg
-rw-r--r-- 1 ale ale 2330667 Oct 9 22:38 0003.jpg
-rw-r--r-- 1 ale ale 2162542 Oct 9 22:38 0004.jpg
-rw-r--r-- 1 ale ale 2579155 Oct 9 22:38 0005.jpg
-rw-r--r-- 1 ale ale 2175118 Oct 9 22:38 0006.jpg
-rw-r--r-- 1 ale ale 2174325 Oct 9 22:38 0007.jpg
-rw-r--r-- 1 ale ale 2421311 Oct 9 22:38 0008.jpg
-rw-r--r-- 1 ale ale 2202587 Oct 9 22:38 0009.jpg
编辑:另一种选择。首先,我创建一个带有列表URL的文件:
~$ URL1="http://archives.cg66.fr/mdr/index.php/docnumserv/getSubImage/0/0/0/-archives-009NUM_Etat_civil-Images---LLUPIA-2E1700_1702-FRAD066_2E1700_1702"
~$ URL2="0/100/0/100/100/100/100/100/2300/1500/0/100"
~$ for I in $(seq -w 0001 0009)
do
echo "${URL1}_{${I}}.jpg/${URL2}" >> url_list.txt
done
循环输出以下格式的URL:..._1702_{${I}}.jpg/0/100...
为了保存格式为的文件'#1.jpg'
。
~$ xargs -P 10 -n 1 curl -o '#1.jpg' < url_list.txt
但是,此解决方案可能会使Web服务器超载。万一遇到麻烦,我认为使用该wget
解决方案添加选项--limit-rate=amount
以将下载速度限制为amount
每秒字节数可能会有所帮助。加k
为千字节,M
为兆字节。
参考:
xargs -n 1 -P {number_files}
)中获取一个参数:https://serverfault.com/a/722874curl -o '#1.jpg'
)的文件:https : //unix.stackexchange.com/a/91574本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句