来自男神的天气预报

REDAME

又到了寒冷的冬天,武汉的天气变换无常,如果能在早上及时的获取武汉和家乡的天气预报就再好不过了

references

https://github.com/kootenpv/yagmail

利用python发邮件

requirements:

  • python2.7
  • yamail

install

pip install yagmail

test

import yagmail
yag=yagmail.SMTP(user='*********@163.com',password='*******',host='smtp.163.com', port='25', smtp_ssl=False, smtp_starttls=True)
yag.send('2285539745@qq.com', '系统出问题了', '我要升职加薪了')

user是你的邮箱,password是开通了SMTP服务之后得到的密码,这里我的微信关联了qq,马上就收到邮件了

利用python获取天气数据

requirements:

  • urllib2
  • json

核心是对百度的天气api发起请求获取数据再根据自己的需求封装一下

import json
import urllib2

def get_weather(place):
    url = 'http://api.map.baidu.com/telematics/v3/weather?location='+place+'&output=json&ak=KPGX6sBfBZvz8NlDN5mXDNBF&callback='
    s=json.loads(urllib2.urlopen(url).read())
    # pprint(s)
    result  = {}
    result['tempera_today'] = s["results"][0]["weather_data"][0]["temperature"]
    result['tempera_now'] = s["results"][0]['weather_data'][0]['date'].rstrip(')').split('(')[1]
    s2 = s["results"][0]["weather_data"][0]["weather"]
    result['date'] = s["date"]
    result['clothes_tips'] = s["results"][0]["index"][0]["des"]
    result['healthy_tips'] = s["results"][0]["index"][2]["des"]
    result['exercise_tips'] = s["results"][0]["index"][3]["des"]
    result['pm25'] = s["results"][0]["pm25"]
    predict = s["results"][0]["weather_data"][1]
    result['predict'] = predict["date"]+predict["weather"]+predict["temperature"]
    result['city'] = s["results"][0]["currentCity"]

    return(u'地点:%s\r\n今天温度:%s\r\n现在温度:%s\r\n今天日期:%s\r\n穿衣指数:%s\r\n感冒指数:%s\r\n健身指数:%s\r\npm2.5指数:%s\r\n天气预报:%s' 
        % (result['city'], result['tempera_today'], result['tempera_now'], result['date'], 
        result['clothes_tips'], result['healthy_tips'], result['exercise_tips'], result['pm25'], result['predict']))

test

In [2]: print(get_weather('武汉'))
地点:武汉
今天温度:13 ~ 1℃
现在温度:实时:8℃
今天日期:2017-12-12
穿衣指数:建议着厚外套加毛衣等服装。年老体弱者宜着大衣、呢外套加羊毛衫。
感冒指数:昼夜温差很大,易发生感冒,请注意适当增减衣服,加强自我防护避免感冒。
健身指数:天气较好,无雨水困扰,较适宜进行各种运动,但因气温较低,在户外运动请注意增减衣物。
pm2.5指数:88
天气预报:周三小雨8 ~ 4℃

In [3]: print(get_weather('武汉')+'\r\n\r\n'+get_weathe
   ...: r('大悟'))

整理成python脚本

https://gist.githubusercontent.com/CarryHJR/df4d4fb5360166f7b61bb3905412bff3/raw/2e1cb941b26b837c4d47b5ecbfdfb319d6d56f15/weather_email.py

利用crontab定时执行

新建一个weather.cron,内容如下,python路径和weather_email.py路径要改为自己的

0 7 * * * ~/anaconda2/bin/python ~/workplace/python/weather-predict/weather_email.py

然后

crontab weather.cron

这样以后每天7点女神就可以受到来自男神的天气预报啦

trouble shooting

开始一直没反应,发现默认的是gmail服务器,要改host参数

后来报ssl问题,要改smtp_ssl和smtp_starttls参数

后来报邮件问题,按照网易邮箱的要求全用不含敏感词汇的中文

    原文作者:电信carry
    原文地址: https://www.jianshu.com/p/4b0f8ef33d81
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞