zoukankan      html  css  js  c++  java
  • Linux-shell获取天气

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

    获取对应城市天气

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

    shell脚本

    shell脚本代码如下:

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

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

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

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

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

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

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

    还有全天天气信息:

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

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

    获取天气信息

    对应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

    定时获取

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

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

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

    提取天气

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

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

    终端命令提示符中显示

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

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

    我的终端命令提示符

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

  • 相关阅读:
    Android辅助开发工具合集
    android HTTP镜像
    ERROR: 9-patch image C:... esdrawableappwidget.9.png malformed. Frame pixels must be either solid or transparent (not intermediate alphas).
    报错:The import android.support cannot be resolved
    报错:Can't bind to local 8647 for debugger
    报错:APP has stopped
    slot游戏中的数学概念
    python 实现简单排序
    python中re.findall()找到的结果替换
    揭秘简历和面试话术的秘密
  • 原文地址:https://www.cnblogs.com/snowsolf/p/shell_get_weather.html
Copyright © 2011-2022 走看看