使用的是和风天气的接口
网址是https://dev.heweather.com/
进网站之后点右上角注册
注册好之后登陆到网站,进入‘控制台
点击应用管理,创建一个应用
然后新建应用,我创建的是web端的,其他创建方法详见https://dev.heweather.com/docs/getting-started/get-api-key。
应用名称自己随便写个,test之类的都行,注意的一点是绑定ip那个不要填,容易出错。完事之后回到自己的应用,可以看到自己创建的一个应用,这个key值一会儿要用
接口调用的介绍在这里https://dev.heweather.com/docs/api/
调用不同的接口,返回不同的数据,根据自己的需要自己选择
下面就是我的完整代码了
import requests
from pprint import pprint
from email.mime.text import MIMEText
from email.header import Header
import smtplib
from apscheduler.schedulers.blocking import BlockingScheduler
from datetime import datetime
def email_s(aa):
# 输入Email地址和口令:
#我用的126邮箱
#你的126邮箱
from_addr = '。。。。@126.com'
#你的126邮箱密码
password = '。。。。'
# 输入收件人地址:,我发给我的qq邮箱了
to_addr = '。。。。@qq.com'
# 输入SMTP服务器地址:如果你也用的126邮箱做发件人,就这样写,其他邮箱自己查一下了
smtp_server = 'smtp.126.com'
#这里是邮箱的主体,也就是邮件内容
msg = MIMEText('宝贝儿,这是给你的天气预报哦。\n{}。永远爱你!'.format(str(aa)), 'plain', 'utf-8')
#这里是邮件头部信息
msg['From'] = Header('来自在乎你的人的问候', 'utf-8')
#接收邮箱
msg['To'] = to_addr
msg['Subject'] = Header('小可爱亲启:', 'utf-8')
server = smtplib.SMTP(smtp_server, 25) # SMTP协议默认端口是25
server.set_debuglevel(1)
server.login(from_addr, password)
server.sendmail(from_addr, [to_addr], msg.as_string())
server.quit()
def job():
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36',
}
url_life='https://free-api.heweather.net/s6/weather/lifestyle?location=104.06,30.6&key=d018de08891a41a7b79348ada27e6887'
rq_life=requests.get(url_life,headers=headers)
rq_life1=rq_life.json()
# pprint(rq_life1)
url_weather='https://free-api.heweather.net/s6/weather/now?location=104.06,30.6&key=d018de08891a41a7b79348ada27e6887'
rq_weather=requests.get(url_weather,headers=headers)
rq_weather1=rq_weather.json()
# pprint(rq_weather1)
cond_txt=rq_weather1['HeWeather6'][0]['now']['cond_txt']
tmp=rq_weather1['HeWeather6'][0]['now']['tmp']
fl=rq_weather1['HeWeather6'][0]['now']['fl']
wind_dir=rq_weather1['HeWeather6'][0]['now']['wind_dir']
wind_sc=rq_weather1['HeWeather6'][0]['now']['wind_sc']+'级'+'\n'
comf_txt=rq_life1['HeWeather6'][0]['lifestyle'][0]['txt']+'\n'
aa='今天天气{},气温{},体感温度{},{}{}{}自己根据天气情况准备出发哦'.format(str(cond_txt),str(tmp),str(fl),str(wind_dir),str(wind_sc),str(comf_txt))
print(aa)
email_s(aa)
if __name__=='__main__':
#job()
#这里是定时任务,每天的13:30运行,想知道其他定时时间的,可以看我另一篇博客
scheduler = BlockingScheduler()
scheduler.add_job(job, 'cron', hour=13, minute=30)
scheduler.start()
运行效果: