Html wget:使用.jpg扩展名保存

Html wget:使用.jpg扩展名保存,html,linux,download,jpeg,wget,Html,Linux,Download,Jpeg,Wget,我制作此脚本是为了从数据库下载.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/

我制作此脚本是为了从数据库下载.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
对于((i=1;i您可以这样尝试:

~$ 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
命令将返回错误页面

因此,我将URL从以下位置更改为:
。\u 1702\u 000$I.jpg/0/100/..
。\u 1702\u${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:
..u1702{${I}}.jpg/0/100…
,以便以以下格式保存文件:
'.\1.jpg'

~$ xargs -P 10 -n 1 curl -o '#1.jpg' < url_list.txt
~$xargs-p10-n1curl-o'#1.jpg'
但是,此解决方案可能会使Web服务器过载。如果出现问题,我认为使用
wget
解决方案添加选项
--limit rate=amount
将下载速度限制为
amount
字节/秒。添加
k
表示千字节,添加
M
表示兆字节可能会有所帮助

参考资料:

  • 命令并行化并从文件中获取一个参数(
    xargs-n1-P{number_files}
    ):
  • 使用自定义名称保存文件(
    curl-o'#1.jpg'
    ):