昨天菜鸟小白给大家留了一个课后作业,如何实现天气的定时推送。有没有小伙伴做出来答案呢?今天菜鸟小白给大家分享我的实现方式吧。这个是我今天整的程序流程图,昨天我们还只是实现了中间的通过和风天气API获取天气情况,今天我们需要实现其它部分。

 
在这里插入图片描述

计时器的实现

APScheduler是一个 Python 定时任务框架,使用起来十分方便。提供了基于日期、固定时间间隔以及 crontab 类型的任务,并且可以持久化任务、并以 daemon 方式运行应用。我们通过pip程序安装好apscheduler库。

 
在这里插入图片描述

安装之后我们直接运行如下程序

def job():
print(datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
# 定义BlockingScheduler
sched = BlockingScheduler()
sched.add_job(job, 'interval', seconds=5)
sched.start()

运行这个实验程序我们会发现每隔5秒钟打印当前时间,最后我们只想调整seconds参数和job函数中执行的命令即可。

天气推送

菜鸟小白之前有看到过一遍博文说是用python写了一个微信提醒备忘录,里面使用的是server酱来实现微信推送,这个正好不就拿来用推送天气消息么。菜鸟小白去server酱的官网上看整个过程也很简单。
官网地址:http://sc.ftqq.com/3.version
接入流程如下:
登入:用GitHub账号登入网站,就能获得一个SCKEY(在「发送消息」页面)
绑定:点击「微信推送」,扫码关注同时即可完成绑定
发消息:往 http://sc.ftqq.com/SCKEY.send 发GET请求,就可以在微信里收到消息啦
我们一步一步进行教学,首先我们需要使用GitHub账户登录网站,登录后如下图所示:

 
在这里插入图片描述

在发送消息页面下面可以看到自己的key值。

 
在这里插入图片描述

接下我们需要点击微信推送绑定需要接收推送信息的微信,绑定后如下图所示:

 
在这里插入图片描述

接下来我们就只需要完成发送消息的代码即可,代码很基础,我们就不进行分析了。

def send_msg(content):

title = cityname + "天气情况"
print(title)
params={
'text':title,
'desp':content
}
serverURL = "https://sc.ftqq.com/SCU48241Td01d600e292***********e9d35caaccd7e9283.send"#替换为自己的key值
response = requests.session().post(serverURL,data=params)

实现效果

最后我们看一下实现效果,因为时间原因我设置的推送时间间隔为3分钟,你们运行的时候适当拉长推送时间。
我的程序运行后,21:45收到的微信推送天气情况

 
在这里插入图片描述

等待一段时间后,21:48收到的微信推送天气通知

 
在这里插入图片描述

后续可优化空间

如果你确实是需要给你的糊涂蛋女友推送消息的话,还可以根据不同天气情况调整推送内容,让女朋友感受到你十足的关心。怎么菜鸟小白已经帮你到这里了,你还不会做的话,那菜鸟小白就没有办法了。

粉丝福利

插拔一条抽奖信息,关注菜鸟小白的公众号回复“粉丝福利”即可参与抽奖腾讯月卡一张,礼物虽轻,但也是菜鸟小白的一份心意呢~

源码获取

想要获取源码的小伙伴,老规矩。关注公众号“菜鸟小白的学习分享”回复“天气推送”即可
好了今天分享就到了,如果你也认同菜鸟小白的学习分享的话,那就给菜鸟小白一个关注、在看、点赞+赞赏吧,你们的支持,是我持续不断的动力

推荐阅读:

想做一个天气推送程序,却被和风天气API的示例代码调试得快吐了

教你搭建微信公众号自动答复机器人

媳妇儿让我给她找一个PDF转word免费工具,找了半天我决定给她写一个出来-

媳妇儿喜欢玩某音中的动漫特效,那我就用python做一个图片转化软件。

媳妇儿总说我桌面太乱,我一气之下用python写了个桌面文件分类器

关注微信公众号——菜鸟小白的学习分享
妈妈再也不用担心我找不到路了

在这里插入图片描述

一个人的学习孤单
一群人的学习幸福

通过server酱实现定时推送天气情况,再不用担心你的糊涂蛋女友忘带伞了~~的更多相关文章

  1. SpringBoot 简易实现热搜邮件推送,妈妈再也不用担心我不了解国家大事了

    1.前言 上班的时候,无聊的时候,偶尔跑去百度看下热搜,所以就萌生出这种想法,通过邮件推送的方式实现效果,首先找到百度热搜的页面 热搜,话不多说,直接开干. 2.环境准备 因为是个SpringBoot ...

  2. rsync 系统用户/虚拟用户 备份web服务器数据及无交互定时推送备份

    一.服务环境 (1),WEBserver(192.168.10.130) : BACKserver(192.168.10.129) (2),BACKserver服务器部署,安装所需软件,并启动 (3) ...

  3. 使用flask_socketio实现服务端向客户端定时推送

    websocket连接是客户端与服务器之间永久的双向通信通道,直到某方断开连接. 双向通道意味着在连接时,服务端随时可以发送消息给客户端,反之亦然,这在一些需要即时通讯的场景比如多人聊天室非常重要. ...

  4. Docker 部署 _实现每日情话 定时推送(apscheduler)

    由于最近工作比较忙,后续博客可能更新不及时,哈哈 前言: 由于python对于微信推送不够友好,需要扫码登录,短信接口需要RMB.我就想到了qq邮箱发送到好友,然而微信有qq邮箱提醒功能,就实现了我需 ...

  5. Server push(服务器推送技术)

    一.服务器推送技术Server Push详解:        推送技术Server Push的基础思想是将浏览器主动查询信息改为服务器主动发送信息.服务器发送一批数据,浏览器显示这些数据,同时保证与服 ...

  6. WebSocket(4)---实现定时推送比特币交易信息

    实现定时推送比特币交易信息 实现功能:跟虚拟币交易所一样,时时更新当前比特币的价格,最高价,最低价,买一价等等...... 提示:(1)本篇博客是在上一遍基础上搭建,上一篇博客地址:[WebSocke ...

  7. 后端利用Redis队列及哈希实现定时推送提醒的三个思路

    周煦辰 2016年8月31日 本文介绍了一下本人在开发过程中遇到"定时推送提醒"的需求的时候所思考的三种解决方案. 明确问题 首先明确一下这个需求可能包含的几个"坑&qu ...

  8. Quartz-第二篇 使用quartz框架定时推送邮件

    1.定时推送邮件,也就是使用定时调度框架触发我们的发邮件动作,发邮件动作,请参考我的这篇随笔.

  9. 通过 Github Action 实现定时推送天气预报

    偶然间,看到 GitHub Actions 教程:定时发送天气邮件 - 阮一峰的网络日志 这篇文章,没错,这个正好能打发自己的折腾之心,也能通过代码给生活引入一些变化. 还是在这里简单记录一下实现过程 ...

随机推荐

  1. Python按顺序读取文件夹中文件

    参考资料: https://blog.csdn.net/qq_22227123/article/details/79903116 https://blog.csdn.net/merdy_xi/arti ...

  2. 甜咸粽子党大战,Python爬取淘宝上的粽子数据并进行分析

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 爬虫 爬取淘宝数据,本次采用的方法是:Selenium控制Chrome浏览 ...

  3. 在采用K8S之前您必须了解的5件事情

    作者简介 Christopher Tozzi,自2008年来以自由职业者的身份对Linux.虚拟化.容器.数据存储及其相关主题进行报道. 时至今日,Kubernetes已然成为风靡一时的容器编排调度工 ...

  4. robot framework使用小结(二)

    robot framework关键字驱动采用分层,结合Template做成数据驱动 我个人觉得不管是关键字驱动还是数据驱动,都是基于模块(或者是函数)的概念 新建测试案例baidu02,添加Libra ...

  5. Zookeeper分布式过程协同技术 - 群首选举

    Zookeeper分布式过程协同技术 - 群首选举 群首概念 群首为集群中服务器选择出来的一个服务器,并被集群认可.设置群首目的在与对客户端所发起的状态变更请求进行排序,包括:create.setDa ...

  6. Java BigDecimal和double BigDecimal类

    BigDecimal类 对于不需要任何准确计算精度的数字可以直接使用float或double,但是如果需要精确计算的结果,则必须使用BigDecimal类,而且使用BigDecimal类也可以进行大数 ...

  7. Jquery中$(document).ready()

    window.onload = function(){ alert("welcome"); } 语句的作用是希望在页面加载完,自动执行定义js代码(function). $(doc ...

  8. Js中各种类型的变量在if条件中是true还是false

    如果操作数是一个对象,返回true如果操作数是一个空字符串,返回false如果操作数是一个非空字符串,返回true如果操作数是数值0,返回false如果操作数是任意非0数值(包括Infinity),返 ...

  9. 【MyBtis】获取数据插入postgresql后返回的自增id

    问题描述 数据库采用的是postgresql,以下面的rule表为例,该表的id设置为自增,那么经常有这样的需求,在执行insert操作后,紧接着需要获取该记录的自增id往中间表中插入数据,或者是再根 ...

  10. .netcore项目codefirst时使用的配置文件是appsettings.json

    .netcore项目创建完毕后,会发现项目中有好几个配置文件: appsettings.json appsettings.Development.json appsettings.Production ...