linux 网络图片下载,Shell脚本实现批量下载网络图片代码分享

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

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

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

比如:

6badd7722eeef60f425c12610d798dc0.png

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

方法1:

#!/bin/bash

#

# Decription:

# A Shell script used to download the imges from Internet.

# Author:

# Long Luo

# Date:

# 2014-09-11 00:16:59

#

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

# declare STIRNG variable

STRING="Beginning Image download..."

#print var on screen

echo $STRING

sleep 1

echo "...."

BIG_PNG="ds.png"

PNG=".png"

echo "url="${BASE_URL}

echo "big png="${BIG_PNG}

for ((i=0; i<49;i++)); do

echo IMG_URL=${BASE_URL}${i}${BIG_PNG}

echo "final url="${IMG_URL}

curl ${BASE_URL}${i}${BIG_PNG} -o small/${i}${PNG}

sleep 1

done

方法2:

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

# Method 2

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

echo ${URL_ARRAY[${i}]}

echo "saved as ${NAME_ARRAY[${i}]}"

curl ${URL_ARRAY[${i}]} -o images/${NAME_ARRAY[${i}]}

sleep 1

done

以上,希望有需要的同学可以采用:-)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值