python每天定时发送天气预报和笑话
你是否有时出门后被冻成狗时,后悔没有看天气预报多穿条秋裤,是否有时工作劳累之余,没有笑话让你乐呵一下。就现在开始,让Python每天定时给你发送天气预报和笑话,让你远离冻成狗。最后,如果你的时间不是很紧张,并且又想快速的提高,最重要的是不怕吃苦,建议你可以扩我伪xin mengy7762,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~
我们先来看看要做的步骤:
-
注册和风天气,获取天气预报的接口 -
注册聚合数据,获取笑话的接口(当然这里也有天气预报的接口,只不过限免500条) -
用requests库去请求接口,获得数据,处理数据 -
利用python的jinja2模块写一个html模板,用于展示数据 -
python的email构建邮件,smtplib发送邮件 -
crontab定时执行python脚本
我们按部就班的来做
注册和风天气,获取天气预报的接口
注册和风天气后,会给你一个key
和风天气key
这个key很重要,在接口中要提交这个参数
接下来我们看接口
和风天气API
从中可以看到接口的地址、访问的方式、传递的参数,文档下面还有返回的数据格式,可以自己查阅,这里就不展示了。
注册聚合数据,获取笑话的接口
要获得笑话的接口,还需要在聚合上进行实名认证,之后会给你一个key
聚合数据key
我们查看笑话的接口
聚合数据API
可以看到API接口、访问方式、请求参数,返回的数据在文档下面,可以自行查阅
用requests库去请求接口,获得数据,处理数据
在请求接口之前我们先得写好参数
API参数
接下来利用requests库,加上请求参数获取数据
获取API数据
当我们处理笑话数据时,由于我们需要的数据在列表中,所以我只取了前两条数据,也就是两个笑话
处理笑话数据
处理天气预报数据时,由于会返回很多字段,我们只需要取自己关心的字段
处理天气预报字段
到这里我们所需要的数据都处理完了.最后,如果你的时间不是很紧张,并且又想快速的提高,最重要的是不怕吃苦,建议你可以扩我伪xin mengy7762,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~
利用python的jinja2模块写一个html模板,用于展示数据
我这个模板写的比较简单,没有加过多的样式,有点丑,你们可以动手多写点css
hefentianqi.html
我们写好了模板还得引入到主文件中
引入jinja2模板
我们把获取到的笑话和天气预报的数据传到jinja2模板中,并返回html
注意:这里的HEFEN_D是绝对路径
利用python的email构建邮件,smtplib发送邮件
这里用的qq邮箱发送邮件,所以首先需要开启POP3/SMTP服务
POP3/SMTP服务
开启后会得到SMTP授权码,只有这样我们才可以利用qq邮箱发送邮件
我们先要构造邮件常用的数据
邮件常用数据
构造好数据开始构造邮件
构造邮件
大概解释一下代码首先构造msg既邮件的内容和表头,然后利用SMTP_SSL登录QQ邮件服务器,login登录用户,sendmail发送邮件
注意:
-
msg[‘To’]只是显示发送给了那些人,所以是一个string -
在sendmail中的to_address是一个list,会根据这个发送邮件
现在我们的邮件可以发送了,但是还是需要我们手动执行
利用crontab定时发送邮件
crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务
我们输入crontab -l
crontab
我已经设置了每天10:02和22:01执行脚本,并输出日志 小可爱,加下我V :mengy7762 领取以下福利 1、python安装包 2、程序员电子书籍:5本-10本 3、python项目源码三份:(python破解WiFi密码、VIP视频权限破解、爬虫自动化) 4、基础学习PPT教案 5、免费课程(开课时间15:00、19:30、20:30)自由选择 6、程序员职业规划分享 7、空余时间接单赚钱方法
注意:
-
如果脚本中涉及了中文,记得一定要写export LANG="****",如果不知道属性是什么:echo $LANG -
在crontab中要写绝对路径,包括python3,查看python的安装位置:which python3
最后发送邮件的效果:
发送的邮件
|