实战|使用python推送微信公众号消息(哄女友专用)
抖音上看到女友分享的别人家程序员男友写的一个定时微信公众号推送消息的小功能,自己尝试写了一下,供大家参考。
先上效果图:
首先分析需求、效果图,完成功能需要:
- 微信公众平台(注册一个测试账号)
- 接入微信公众平台——对话服务——发送消息——模板消息(业务通知)接口
- 完成第二步接口需获取access_token及接收方id(获取用户列表)
- 制定模板内容(当前时间、爬取天气状况、计算纪念日、计算生日、情话)
- 拼接模板内容
- windows制定计划任务实现每日问候!
附代码:
# -*- encoding:utf-8 -*-
import randomimport requests
import json
import datetime
import calendar
import time
from bs4 import BeautifulSoup
from zhdate import ZhDate
import emoji
import urllib.request
import urllib.parseclass SendMessage():def __init__(self):rq = self.get_rq()tq = self.get_tq()jnr = self.get_jnr()sr = self.get_sr()body =rq+"\n"+tq+"\n"+jnr+"\n"+sr;self.dataJson ={"first":"哈喽,宝贝!","body":body+" ","remark":self.get_qh()[random.randint(0, len(self.get_qh())-2)]+" "}self.appID = ''self.appsecret = ''self.template_id = ''//模板idself.access_token = self.get_access_token()self.opend_ids = self.get_openid()def get_qh(self):qhStr="";file_object1 = open("D:\workspaces\python/venv\qh.txt", 'r',encoding="utf-8")try:while True:line = file_object1.readline()if line:qhStr+=line.rstrip()+"#"else:breakfinally:file_object1.close()return qhStr.split("#")def get_rq(self):sysdate = datetime.date.today() # 只获取日期now_time = datetime.datetime.now() # 获取日期加时间week_day = sysdate.isoweekday() # 获取周几week = ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期天']return '现在是' + str(now_time)[0:16] + ',' + week[week_day - 1]+"。"def get_tq(self):url = 'http://www.weather.com.cn/weather/101010300.shtml'sysdate = datetime.date.today()r = requests.get(url, timeout=30) # 用requests抓取网页信息r.raise_for_status() # 可以让程序产生异常时停止程序r.encoding = r.apparent_encoding # 编码格式html = r.textfinal_list = []soup = BeautifulSoup(html, 'html.parser') # 用BeautifulSoup库解析网页 #soup里有对当前天气的建议body = soup.body # 从soup里截取body的一部分data = body.find('div', {'id': '7d'})ul = data.find('ul')lis = ul.find_all('li')for day in lis:temp_list = []date = day.find('h1').string # 找到日期if date.string.split('日')[0] == str(sysdate.day):temp_list = []date = day.find('h1').string # 找到日期temp_list.append(date)info = day.find_all('p') # 找到所有的p标签temp_list.append(info[0].string)if info[1].find('span') is None: # 找到p标签中的第二个值'span'标签——最高温度temperature_highest = ' ' # 用一个判断是否有最高温度else:temperature_highest = info[1].find('span').stringtemperature_highest = temperature_highest.replace('℃', ' ')if info[1].find('i') is None: # 找到p标签中的第二个值'i'标签——最高温度temperature_lowest = ' ' # 用一个判断是否有最低温度else:temperature_lowest = info[1].find('i').stringtemperature_lowest = temperature_lowest.replace('℃', ' ')temp_list.append(temperature_highest) # 将最高气温添加到temp_list中temp_list.append(temperature_lowest) # 将最低气温添加到temp_list中final_list.append(temp_list) # 将temp_list列表添加到final_list列表中return '天气情况是' + final_list[0][1] + ',温度是' + final_list[0][3].strip() + '~' + \final_list[0][2].strip() + '摄氏度。'def get_sr(self):today = datetime.datetime.now()data_str = today.strftime('%Y-%m-%d')oneDay = ZhDate(today.year, 9, 6).to_datetime()difference = oneDay.toordinal() - today.toordinal()if difference >0 :return ("距离我滴宝生日,还有 %d 天。" % (difference))elif difference==0:return ('生日快乐!!
实战|使用python推送微信公众号消息(哄女友专用)相关推荐
- java如果将信息推送到公众号_Java 推送微信公众号消息
1 新建消息请求类 WeChatTemplateRequest @Data public class WeChatTemplateRequest { private String touser; pr ...
- Python程序员的浪漫-实现每天定时给Ta推送微信公众号消息提醒超详细教程
前段阵子,小
- php公众号批量推送,微信公众号文章如何批量发送给指定的用户
微信公众号文章如何批量发送给指定的用户 导读:小编根据大家的需要整理了一份关于<微信公众号文章如何批量发送给指定的用户>的内容,具体内容:微信公众号的文章群发的时候,会发给所有的用户,但是 ...
- 给女朋友做的每日消息推送微信公众号和邮箱推送
前言: 最近看见好多做这个微信公众号推送的,其实不难很简单,自己也做了一个给女朋友,用了微信公众号推送和邮箱推送两个版本 网上大多是python版本,我用的是php分别写的微信和邮箱两个推送 项目地址 ...
- mysql 推送微信公众号_10分钟完成微信公众号第三方平台全网发布
背景:在微信公众平台配置服务器URL时,使用了新浪云SAE自带的二级域名,提交时出现一个安全风险的警告,网上查了下,许多服务平台和团队也遇到同样的问题. 经过一番研究 - 为什么会有安全风险的警告? ...
- C#服务号推送微信公众号模板消息
一.准备工作 微信公众平台:https://mp.weixin.qq.com/ 申请测试账号:https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?ac ...
- 【Python】发送微信公众号消息(附完整代码)一一CSDN21天学习挑战赛
目录 一.微信公众号注册 注册测试号 获取账号信息 新增消息模板 二.代码实现 新建access_token.py文件 新建send_message.py文件 新建main.py文件 运行main ...
- 通过python实现企业微信公众号链接+图文推送
背景:通过python实现企业微信公众号链接+图文推送 目的:实现点击即看到内容,用更符合用户查看公众号消息的习惯推送消息 步骤: 1.创建企业微信公众号(应用) 2.确定推送内容(BI报表链接)+标 ...
- 微信公众号消息推送流
一.前期准备工作: 1.需要申请私人/公司的测试号-- 参考这篇文章 ,微信公众平台测试帐号申请 - 简书 (jianshu.com) 1.1.需要响应微信发送的Token请求: 注意:这里的端口必须 ...
最新文章
- Android Fragmnet的使用新体会
- php函数剩余时间,php计算剩余时间的自定义函数
- 03-spring bean
- 软考-信息系统项目管理师-战略管理
- 在ASP.Net 2.0中实现多语言界面的方法
- android学习笔记17——对话框(PopupWindow)
- SQL注入问题及预防方法
- 数学模型让咖啡更好喝
- activiti 常见问题总结
- ASP.NET适合做互联网吗,适合做电子商务平台吗?
- jQuery 异步上传插件 Uploadify 使用 (Java平台)
- atitit.ajax bp dwr 3.的注解方式配置使用流程总结 VO9o.....
- WPS word文档_页眉页脚横线的添加和删除
- 网页在线PS网站源码PHP 浏览器在线P图
- 体力活动水平的计算机软件著作权查询,软件著作权被竞争对手抢先,著作权保护的客体对象是谁?...
- python-房贷内部收益率计算
- 各宽带接入服务商简称整理
- Python解炸金花问题
- Java生鲜电商平台-订单架构实战
- go系列-笔记(第五天)
热门文章
- Downie 4 for Mac(最好用的视频下载软件)
- java解析bt协议详解_BT下载原理分析
- 产品生命周期优化法PACE
- 【AUTOSAR-CanTp】-2.10-复用UDS/OBD诊断物理/功能寻址/响应CAN_ID--Extended addressing扩展寻址
- 比较基因组学常用分析软件和分析方法
- python中row是什么意思_Python中的2D列表(row total/grand total)
- 论文阅读笔记之手术器械分类的注意约束自适应核选择网络(SKA-ResNet)(一)
- C++学习笔记(五)opencv在win下的使用 —参考浅墨opencv3编程入门
- php 微商城 开源,一款基于ThinkPHP3.2开发的微信O2O开源微商城系统_微信开源微商城WEMALL...
- 天龙八部 找怪物ID