![e269cc93daa621628360dcffffe5a9b1.png](https://i-blog.csdnimg.cn/blog_migrate/aa5b921064d60076b22e81b9d843d9f6.jpeg)
在一个夜黑风高的夜晚、在我拨了无数个无法接通后,我接到了一个未知男人的来电。他告诉我........... “别来骚扰我了,我教你还不行么” 在不求人这条路上我走了好久,痛定思痛后、让我终于明白了一个道理:女友才是真谛~
微信登录
安装微信机器人模块 pip install -U wxpy
导入模块
from wxpy import *
初始化机器人,扫码登陆 bot = Bot()
通过微信网页版登录、初始化登陆时需要扫码
请求诗词API接口
Token
用于鉴别和区分每个用户,获取后
永久有效
获取 Token 的地址为,GET 方法
https://v2.jinrishici.com/token
返回值 { "status": "success", "data": "RgU1rBKtLym/MhhYIXs42WNoqLyZeXY3EkAcDNrcfKkzj8ILIsAP1Hx0NGhdOO1I" }
携带Token请求,在header中指定X-User-Token
请求地址
https://v2.jinrishici.com/sentence
通过urllib3构造请求头
http = urllib3.PoolManager()
result = http.request('GET','https://v2.jinrishici.com/sentence',
headers={'X-User-Token': RgU1rBKtLym/MhhYIXs42WNoqLyZeXY3EkAcDNrcfKkzj8ILIsAP1Hx0NGhdOO1'})
计划任务
python时间调度框架APScheduler,APScheduler 四个组件分别为:触发器(trigger),作业存储(job store),执行器(executor),调度器(scheduler)。 其中触发器(trigger)规则有三种 - date #基础规则只会执行一次 - cron #计划任务、指定时间循环执行 - interval #间隔任务、指定时间段循环执行
scheduler = BlockingScheduler()
scheduler.add_job(job, 'cron', day_of_week='1-5', hour=8, minute=20)
# job为具体的执行函数,后面为时间定义:每天最好的时间给最好的她送去最好的诗词....
scheduler.start()
全部代码
from wxpy import *
import urllib3
import json
from apscheduler.schedulers.blocking import BlockingScheduler
'''
初始化登录状态,搜索的好友名称为自己通讯录中的备注名
返回结果为list
'''
bot = Bot()
kele = bot.friends().search('可乐')[0]
sched = BlockingScheduler()
def send_message():
'''
通过API获取json格式诗词、并解析出对应的 标题、作者、内容
title: 诗词名
author: 作者
origin: 内容
'''
http = urllib3.PoolManager()
result = http.request('GET','https://v2.jinrishici.com/sentence', headers={'X-User-Token': '*******'})
s = json.loads(result.data)
title = s['data']['origin']['title']
author = s['data']['origin']['dynasty'] + '--' + s['data']['origin']['author']
origin = json.loads(result.data)['data']['origin']['content']
message = "{}n{}n{}n".format(title,author,origin)
kele.send(message) #发送消息
def cron(event):
'''
周一至周五早上8:20执行任务
'''
sched = BlockingScheduler()
sched.add_job(event, 'cron', day_of_week='1-5', hour=8, minute=20)
sched.start()
if __name__ == "__main__":
cron(send_message)
参考
APScheduler 今日诗词 wxpy:用Python玩微信 GitHub
![e10e32925824e67beab1f06db7848924.png](https://i-blog.csdnimg.cn/blog_migrate/43a47e766ea919a5e77bf86b66ab4610.png)