【问题标题】:wget: save with .jpg extensionwget:使用 .jpg 扩展名保存
【发布时间】:2015-10-09 14:28:22
【问题描述】:

我制作了这个脚本来从数据库下载 .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 个名为 0001.jpg、0002.jpg、0003.jpg ... 0009.jpg 的 .jpg 文件

您能给我一些帮助或建议吗?

【问题讨论】:

    标签: html linux download jpeg wget


    【解决方案1】:

    你可以试试这个方法:

    ~$ 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 seqman wget 获取文档(在线herehere)。

    当然URL不能在变量${i}和下划线之间包含前导零,否则wget命令会返回错误页面。

    因此,我将 URL 从:..._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
    

    循环输出格式为:..._1702_{${I}}.jpg/0/100... 的 URL,以便保存格式为:'#1.jpg' 的文件。

    ~$ xargs -P 10 -n 1 curl -o '#1.jpg' < url_list.txt
    

    但是,此解决方案可能会使网络服务器过载。如果出现问题,我认为使用wget 解决方案添加选项--limit-rate=amount 将下载速度限制为每秒amount 字节可能会有所帮助。为千字节添加k,为兆字节添加M

    参考资料:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-05
      相关资源
      最近更新 更多