linux根据ip获取天气,Linux-shell获取天气

129fb53e5cf3d2dc36716233ff59f804.png

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

1获取对应城市天气

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

1.1shell脚本

shell脚本代码如下:

#!/bin/sh

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

weatherweatherDataFile=weather.html

wget $weatherDateRoot -O $weatherDataFile>/dev/null 2>&1

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

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

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

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

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

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

还有全天天气信息:

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

2.1获取天气信息

对应shell脚本:

#!/bin/sh

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

allDataFile=/home/snowsolf/shell/weather/allDay.html

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

dataFile=/home/snowsolf/shell/weather/weather.html

wget $dataUrl -O $dataFile>/dev/null 2>&1

wget $allDataUrl -O $allDataFile>/dev/null 2>&1

2.2定时获取

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

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

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

2.3提取天气

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

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

2.4终端命令提示符中显示

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

e2f675f32d13a81b612ac08857f1e383.png

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

【编辑推荐】

【责任编辑:牛小雨 TEL:(010)68476606】

点赞 0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值