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脚本
利用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参数
后来报邮件问题,按照网易邮箱的要求全用不含敏感词汇的中文