Shell脚本怎么实现批量下载网络图片

这篇文章主要介绍“Shell脚本怎么实现批量下载网络图片”,在日常操作中,相信很多人在Shell脚本怎么实现批量下载网络图片问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Shell脚本怎么实现批量下载网络图片”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

最近为了做好一个天气预报的项目,需要从Yahoo下载一些天气图标,但是由于图标比较多,有80多张。图标是存储在Yahoo Image网站上的。

迅雷不支持https的下载,虽然可以在浏览器下载,但是在浏览器下载太慢,于是写了一个批量下载图片资源的Shell脚本,完美的解决了这个问题。

Yahoo天气图标的地址规则如下:https://s.yimg.com/zz/combo?a/i/us/nws/weather/gr/ + 图标名称

比如:

Shell脚本怎么实现批量下载网络图片

我使用了2种方法,解决了下载的难题,虽然好久没有写Shell脚本了,但是意识和底子还在,写即几十行代码还是比较轻松的。

方法1:

#!/bin/bash
#
#Decription:
#AShellscriptusedtodownloadtheimgesfromInternet.
#Author:
#LongLuo
#Date:
#2014-09-1100:16:59
#

BASE_URL="https://s.yimg.com/zz/combo?a/i/us/nws/weather/gr/"

#declareSTIRNGvariable
STRING="BeginningImagedownload..."

#printvaronscreen
echo$STRING

sleep1
echo"...."

BIG_PNG="ds.png"
PNG=".png"

echo"url="${BASE_URL}
echo"bigpng="${BIG_PNG}

for((i=0;i<49;i++));do
echoIMG_URL=${BASE_URL}${i}${BIG_PNG}
echo"finalurl="${IMG_URL}

curl${BASE_URL}${i}${BIG_PNG}-osmall/${i}${PNG}
sleep1

done

方法2:

方法2将图片URL地址都写在一个数组里,然后从数组中读取,并重命名,相对来说,不如第一种方法简单:

#Method2

URL_ARRAY=(
'https://s.yimg.com/zz/combo?a/i/us/nws/weather/gr/0d.png'
'https://s.yimg.com/zz/combo?a/i/us/nws/weather/gr/1d.png'
)

NAME_ARRAY=(
'file1.jpg'
'file2.jpg'
)

ELEMENTS=${#URL_ARRAY[@]}

for((i=0;i<ELEMENTS;i++));do
echo${URL_ARRAY[${i}]}
echo"savedas${NAME_ARRAY[${i}]}"
curl${URL_ARRAY[${i}]}-oimages/${NAME_ARRAY[${i}]}
sleep1

done

到此,关于“Shell脚本怎么实现批量下载网络图片”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注恰卡编程网网站,小编会继续努力为大家带来更多实用的文章!

发布于 2021-07-29 22:00:44
收藏
分享
海报
0 条评论
184
上一篇:Shell脚本中的数组用法总结 下一篇:怎么用Shell脚本实现复制文件到多台服务器
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码