昨天菜鸟小白给大家留了一个课后作业,如何实现天气的定时推送。有没有小伙伴做出来答案呢?今天菜鸟小白给大家分享我的实现方式吧。这个是我今天整的程序流程图,昨天我们还只是实现了中间的通过和风天气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. jmeter录制app测试脚本

    1.jmeter 下载地址 https://jmeter.apache.org 2.选择下载包 3.下载完成后解压即可使用(也可以配置环境变量,但我一般不配置,可以使用) 4.打开jmeter 创建线 ...

  2. 《Java并发编程的艺术》第5章 Java中的锁 ——学习笔记

    参考https://www.cnblogs.com/lilinzhiyu/p/8125195.html 5.1 Lock接口 锁是用来控制多个线程访问共享资源的方式. 一般来说一个锁可以防止多个线程同 ...

  3. Mac App 破解之路八 病毒程序分析

    本人使用MacBooster 7 扫出了几个未知程序. JMJ56 这个程序. 在finder中打开发现是一个shell脚本 调用了python 9NKb0 就是python脚本使用.    只不过是 ...

  4. webpack简单笔记

    本文简单记录学习webpack3.0的笔记,已备日后查阅.节省查阅文档时间 安装 可以使用npm安装 //全局安装 npm install -g webpack //安装到项目目录 npm insta ...

  5. Hystrix Stream的监控页面不显示内容

    打开Hystrix Stream页面,进入后,发现只有一行Unable to connect to Command Metric Stream. 因为springboot的默认路径不是 "/ ...

  6. 【漏洞一】检测到目标URL存在http host头攻击漏洞

    [漏洞] 检测到目标URL存在http host头攻击漏洞 [原因] 在项目中使用了 request.getServerName 导致漏洞的出现 不要使用request中的serverName,也就是 ...

  7. JavaScript图形实例:窗花图案

    1.窗花基本框线 设定曲线的坐标方程为: n=25; r=100; x=r/n*cos(5*θ)+r*cos(θ); y=r/n*sin(5*θ)+r*sin(θ);          (0≤θ≤2π ...

  8. 全栈的自我修养: 001环境搭建 (使用Vue,Spring Boot,Flask,Django 完成Vue前后端分离开发)

    全栈的自我修养: 环境搭建 Not all those who wander are lost. 彷徨者并非都迷失方向. Table of Contents @ 目录 前言 环境准备 nodejs v ...

  9. 堆/题解 P3378 【【模板】堆】

    概念: 堆就是一颗二叉树,满足父亲节点总是比儿子节点大(小).因此,堆也分为大根堆和小根堆,大根堆就是父亲节点比儿子节点大,小根堆正好相反.注意加粗的地方,是每一个节点哦!!!!! 还是直接看例题吧, ...

  10. 用户不在sudoers文件中怎么办,ziheng is not in the sudoers file解决方法

    sudo是linux系统中,用来执行需要权限命令,但是一些朋友使用sudo时,出现下面的错误“ziheng is not in the sudoers file. This incident will ...