通过server酱实现定时推送天气情况,再不用担心你的糊涂蛋女友忘带伞了~~
昨天菜鸟小白给大家留了一个课后作业,如何实现天气的定时推送。有没有小伙伴做出来答案呢?今天菜鸟小白给大家分享我的实现方式吧。这个是我今天整的程序流程图,昨天我们还只是实现了中间的通过和风天气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酱实现定时推送天气情况,再不用担心你的糊涂蛋女友忘带伞了~~的更多相关文章
- SpringBoot 简易实现热搜邮件推送,妈妈再也不用担心我不了解国家大事了
1.前言 上班的时候,无聊的时候,偶尔跑去百度看下热搜,所以就萌生出这种想法,通过邮件推送的方式实现效果,首先找到百度热搜的页面 热搜,话不多说,直接开干. 2.环境准备 因为是个SpringBoot ...
- rsync 系统用户/虚拟用户 备份web服务器数据及无交互定时推送备份
一.服务环境 (1),WEBserver(192.168.10.130) : BACKserver(192.168.10.129) (2),BACKserver服务器部署,安装所需软件,并启动 (3) ...
- 使用flask_socketio实现服务端向客户端定时推送
websocket连接是客户端与服务器之间永久的双向通信通道,直到某方断开连接. 双向通道意味着在连接时,服务端随时可以发送消息给客户端,反之亦然,这在一些需要即时通讯的场景比如多人聊天室非常重要. ...
- Docker 部署 _实现每日情话 定时推送(apscheduler)
由于最近工作比较忙,后续博客可能更新不及时,哈哈 前言: 由于python对于微信推送不够友好,需要扫码登录,短信接口需要RMB.我就想到了qq邮箱发送到好友,然而微信有qq邮箱提醒功能,就实现了我需 ...
- Server push(服务器推送技术)
一.服务器推送技术Server Push详解: 推送技术Server Push的基础思想是将浏览器主动查询信息改为服务器主动发送信息.服务器发送一批数据,浏览器显示这些数据,同时保证与服 ...
- WebSocket(4)---实现定时推送比特币交易信息
实现定时推送比特币交易信息 实现功能:跟虚拟币交易所一样,时时更新当前比特币的价格,最高价,最低价,买一价等等...... 提示:(1)本篇博客是在上一遍基础上搭建,上一篇博客地址:[WebSocke ...
- 后端利用Redis队列及哈希实现定时推送提醒的三个思路
周煦辰 2016年8月31日 本文介绍了一下本人在开发过程中遇到"定时推送提醒"的需求的时候所思考的三种解决方案. 明确问题 首先明确一下这个需求可能包含的几个"坑&qu ...
- Quartz-第二篇 使用quartz框架定时推送邮件
1.定时推送邮件,也就是使用定时调度框架触发我们的发邮件动作,发邮件动作,请参考我的这篇随笔.
- 通过 Github Action 实现定时推送天气预报
偶然间,看到 GitHub Actions 教程:定时发送天气邮件 - 阮一峰的网络日志 这篇文章,没错,这个正好能打发自己的折腾之心,也能通过代码给生活引入一些变化. 还是在这里简单记录一下实现过程 ...
随机推荐
- jmeter录制app测试脚本
1.jmeter 下载地址 https://jmeter.apache.org 2.选择下载包 3.下载完成后解压即可使用(也可以配置环境变量,但我一般不配置,可以使用) 4.打开jmeter 创建线 ...
- 《Java并发编程的艺术》第5章 Java中的锁 ——学习笔记
参考https://www.cnblogs.com/lilinzhiyu/p/8125195.html 5.1 Lock接口 锁是用来控制多个线程访问共享资源的方式. 一般来说一个锁可以防止多个线程同 ...
- Mac App 破解之路八 病毒程序分析
本人使用MacBooster 7 扫出了几个未知程序. JMJ56 这个程序. 在finder中打开发现是一个shell脚本 调用了python 9NKb0 就是python脚本使用. 只不过是 ...
- webpack简单笔记
本文简单记录学习webpack3.0的笔记,已备日后查阅.节省查阅文档时间 安装 可以使用npm安装 //全局安装 npm install -g webpack //安装到项目目录 npm insta ...
- Hystrix Stream的监控页面不显示内容
打开Hystrix Stream页面,进入后,发现只有一行Unable to connect to Command Metric Stream. 因为springboot的默认路径不是 "/ ...
- 【漏洞一】检测到目标URL存在http host头攻击漏洞
[漏洞] 检测到目标URL存在http host头攻击漏洞 [原因] 在项目中使用了 request.getServerName 导致漏洞的出现 不要使用request中的serverName,也就是 ...
- JavaScript图形实例:窗花图案
1.窗花基本框线 设定曲线的坐标方程为: n=25; r=100; x=r/n*cos(5*θ)+r*cos(θ); y=r/n*sin(5*θ)+r*sin(θ); (0≤θ≤2π ...
- 全栈的自我修养: 001环境搭建 (使用Vue,Spring Boot,Flask,Django 完成Vue前后端分离开发)
全栈的自我修养: 环境搭建 Not all those who wander are lost. 彷徨者并非都迷失方向. Table of Contents @ 目录 前言 环境准备 nodejs v ...
- 堆/题解 P3378 【【模板】堆】
概念: 堆就是一颗二叉树,满足父亲节点总是比儿子节点大(小).因此,堆也分为大根堆和小根堆,大根堆就是父亲节点比儿子节点大,小根堆正好相反.注意加粗的地方,是每一个节点哦!!!!! 还是直接看例题吧, ...
- 用户不在sudoers文件中怎么办,ziheng is not in the sudoers file解决方法
sudo是linux系统中,用来执行需要权限命令,但是一些朋友使用sudo时,出现下面的错误“ziheng is not in the sudoers file. This incident will ...