Linux-shell获取天气

系统 Linux
用Linux中的shell获取天气,本来觉的比较难,原来,真简单,个位数的代码就搞定。

[[119979]] 

用Linux中的shell获取天气,本来觉的比较难,原来,真简单,个位数的代码就搞定。

1获取对应城市天气

所有天气信息都从中国天气网获取。每一个城市多会对应一个id(比如,北京为101010100,因为本人在银川,所以例子中就用银川的id:101170101),通过id就可以获取对应城市实时天气或者全天天气,还可以获取七天天气。

1.1shell脚本

shell脚本代码如下:

  1. #!/bin/sh   
  2. weatherDateRoot=http://www.weather.com.cn/data/sk/101170101.html  
  3. weatherweatherDataFile=weather.html  
  4. wget $weatherDateRoot -O $weatherDataFile > /dev/null 2>&1   
  5. sed 's/.*temp":"\([0-9]\{1,2\}\).*/\1/g' $weatherDataFile 

此脚本通过将天气信息获取,然后通过正则匹配到当前温度。

如果你只用这个脚本,不再进行二次处理,那也太麻烦。我获取天气信息后是显示到终端命令提示符中的,所以需要还要在做处理。

2终端命令提示符中显示天气

首先获取对应城市天气,如银川对应的实时天气信息在:

http://www.weather.com.cn/data/sk/101170101.html

你先在中国天气网搜索到你想要的城市的天气,网址中会包含城市天气id,将上面的网址中的id替换成你城市的id就可以获取。

还有全天天气信息:

http://www.weather.com.cn/data/cityinfo/101170101.html

不知道中国天气网提供七天天气信息没有?如果有,那么我们也可以通过此方法获取七天天气信息。

2.1获取天气信息

对应shell脚本:

  1. #!/bin/sh  
  2. allDataUrl=http://www.weather.com.cn/data/cityinfo/101170101.html  
  3. allDataFile=/home/snowsolf/shell/weather/allDay.html  
  4. dataUrl=http://www.weather.com.cn/data/sk/101170101.html  
  5. dataFile=/home/snowsolf/shell/weather/weather.html  
  6. wget $dataUrl -O $dataFile > /dev/null 2>&1  
  7. wget $allDataUrl -O $allDataFile > /dev/null 2>&1 

 2.2定时获取

通过crontab命令设置定时任务,执行crontab -e命令(如果***次需要设置默认编辑器),然后在文件末尾添加:

  1. */30 * * * * /home/snowsolf/shell/weather/weather.sh >> /dev/null 

此行代码设置每30分钟执行一次获取天气的脚本,具体crontab命令其它语法可以google或baidu。

2.3提取天气

  1. sed 's/.*temp":"\([0-9]\{1,2\}\).*/\1/g' 

此命令可以从获取的实时天气文件中获取实时天气。

2.4终端命令提示符中显示

你可以参考http://www.cnblogs.com/snowsolf/p/3192224.html。这里可以让你的命令提示符更绚丽。

***上一幅我的命令提示符图:

我的终端命令提示符

简直酷毙了!!!做一个爱折腾的程序员真好!

原文链接:http://www.cnblogs.com/snowsolf/p/shell_get_weather.html

责任编辑:牛小雨 来源: snowsolf的博客
相关推荐

2018-01-29 11:25:37

LinuxASCII 字符天气预报

2019-07-29 15:36:15

Linuxshell内置命令

2020-02-11 20:00:29

开源开源工具天气预报

2009-07-07 09:25:08

Linux开发FOSS开发项目

2009-10-23 13:44:03

linux Shell

2009-12-25 09:55:18

LinuxShell编程Shell基本语法

2022-08-25 21:46:51

网络通讯应用开发

2011-01-10 09:54:30

linuxshell

2019-12-01 22:59:43

Linux shell命令进程

2011-01-07 17:33:47

linuxshell

2019-10-24 07:57:37

Linuxshell获取时间

2009-10-23 13:24:20

linux Shell

2009-12-25 09:49:32

LinuxShell编程运行Shell程序

2010-06-23 17:34:03

Linux Bash

2017-05-31 17:09:52

LinuxShell命令

2022-03-29 09:33:34

LinuxShell命令

2020-12-15 09:08:40

LinuxShell

2012-01-18 10:46:33

ibmdw

2010-06-23 16:35:50

Linux Bash
点赞
收藏

51CTO技术栈公众号