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

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

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

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

比如:

我使用了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<ELEMENTS;i++)); do
 echo ${URL_ARRAY[${i}]}
 echo "saved as ${NAME_ARRAY[${i}]}"
 curl ${URL_ARRAY[${i}]} -o images/${NAME_ARRAY[${i}]}
 sleep 1

done

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

(0)

相关推荐

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

    最近为了做好一个天气预报的项目,需要从Yahoo下载一些天气图标,但是由于图标比较多,有80多张.图标是存储在Yahoo Image网站上的. 迅雷不支持https的下载,虽然可以在浏览器下载,但是在浏览器下载太慢,于是写了一个批量下载图片资源的Shell脚本,完美的解决了这个问题. Yahoo天气图标的地址规则如下:https://s.yimg.com/zz/combo?a/i/us/nws/weather/gr/ + 图标名称 比如: 我使用了2种方法,解决了下载的难题,虽然好久没有写She

  • Shell脚本实现批量生成nagios配置文件

    如果管理的站点和服务器较多的情况下,每次修改配置文件都相当痛苦.因而想到了用shell脚本来批量生成配置文件和配置数据.下面这个脚本是为了批量生成nagios监控配置文件的一个shell脚本程序.其原理是事先定义一个shell脚本模板,然后每个需要监控的站点复制一份模板替换掉模板文件里面的变量. 1.准备模板文件webcheck.template more webcheck.template ###################WEBURL define start##############

  • shell脚本一键同时推送代码至github和gitee的解决办法

    自己写的东西,要同时推送多个git地址,解决办法如下: 1.先要初始化你的git              进入自己的项目目录,然后执行 git  init cd /app/code/go-study git init 2.执行以下脚本: #!/bin/bash #author Oliver #since 2020-09-03 15:24:31 git remote rm origin #replace your git location git remote add origin 'https

  • linux下采用shell脚本实现批量为指定文件夹下图片添加水印的方法

    要实现linux下采用shell脚本批量为指定文件夹下图片添加水印,首先需要安装imagemagick: CentOS上安装: yum install ImageMagick -y Debian上安装: apt-get install ImageMagick -y 脚本: #!/bin/bash for each in /要处理的图片目录/*{.jpg,.gif} s=`du -k $each | awk '{print $1}'` if [ $s -gt 10 ]; then #convert

  • Shell脚本实现批量替换文件内容

    今天同事发现内部服务器的硬盘空间不够了,上面有很多备份,我又不能删除,重新找了个320g的硬盘挂载了上,想以后shell脚本下的备份都转移到新硬盘上,给老硬盘腾出空间来,原备份路径是/data/onlinesqlbak/,新备份路径是/disk2/onlinesqlbak/,我find了下备份shell脚本,这一找吓死个人,最少都有10-20个备份shell要改,谁叫我是懒人想一下搞定完,好了来看我的解决办法吧. 系统:centos 5.x 1.先确认有那些脚本要改 复制代码 代码如下: fin

  • shell脚本编写的俄罗斯方块游戏代码

    粘贴以下代码到一个空的Shell脚本文件中,并在Bash 中运行即可! 复制代码 代码如下: #!/bin/bash # Tetris Game# 10.21.2003 xhchen<[email]xhchen@winbond.com.tw[/email]> #APP declarationAPP_NAME="${0##*[\\/]}"APP_VERSION="1.0" #颜色定义cRed=1cGreen=2cYellow=3cBlue=4cFuchsi

  • java webservice上传下载文件代码分享

    本文实例为大家分享了java webservice上传下载文件代码,供大家参考,具体内容如下 1.新建动态web工程youmeFileServer,新建包com,里面新建类FileProgress package com; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.sql.Date; import java.text.Simple

  • SHELL脚本监控JAVA进程的代码

    脚本内容:java_check.sh #! /bin/bash # if [ -z `pidof java` ]; then echo -e `date +%Y-%m-%d` `date +%R`. "33[31m33[1m(JAVA)Process does not exist! 33[0m" >> /data/logs/java_check.log /usr/local/tomcat/bin/startup.sh >/dev/null 2>&1 sl

  • Shell脚本实现批量下载资源并保留原始路径

    示例资源列表 如url.txt: 复制代码 代码如下: http://su.bdimg.com/static/superplus/img/logo_white_ee663702.png http://su.bdimg.com/static/superplus/img/logo_white_ee663703.png http://su.bdimg.com/static/superplus/img/logo_white_ee663701.png http://su.bdimg.com/static/

  • shell脚本实现批量采集爱站关键词库

    shell批量采集爱站关键词库,心血来潮写着玩的,还不完善,先放出来,后期慢慢更新,功能虽然简单,同类工具也很多现成的,但毕竟是自己写出来的工具,感觉还是很不一样滴! 复制代码 代码如下: for i in $(seq 1 50);do curl -s http://baidurank.aizhan.com/baidu/jiameng.com/$i/position/|grep -a 'class="zhishu"'|sed 's/<a target="_blank&q

随机推荐