在小编的上一篇python文章中提到了关于微信或者QQ的消息“轰炸”(其实我是想你也去看看,23333 [狗头保命]),那是简单版本,今天我要讲的是,发送消息与定时任务的结合体。
看到网上有很多大神用python给女友每天给女朋友发送“糖衣炮弹”,我酸了(给自己一个大嘴巴子,在码代码的时候怎么能想这些,再说了,我的对象千千万,new一个对象就有了,哈哈哈),作为一个程序猿我想实现这一功能,准备工作:
# !user/bin/env/python3
# -*- coding:utf-8 -*-
__author__ = 'heyu<[email protected]>'
__date__ = '2020/5/14'
import win32gui
import win32con
import win32clipboard as w
import requests,re,time
from fake_useragent import UserAgent
from apscheduler.schedulers.blocking import BlockingScheduler
'''添加剪切板文本'''
def setText(string):
w.OpenClipboard()
w.EmptyClipboard()
w.SetClipboardData(win32con.CF_UNICODETEXT,string)
w.CloseClipboard()
'''执行发送操作'''
'''
to:QQ消息接收人;
msg:需要发送的消息
'''
def sendMsg(to,msg):
setText(msg)
qq = win32gui.FindWindow(None,to)
win32gui.SendMessage(qq,258,22,2080193)
win32gui.SendMessage(qq,770,0,0)
win32gui.SendMessage(qq,win32con.WM_KEYDOWN,win32con.VK_RETURN,0) # 控制按键,按下
win32gui.SendMessage(qq,win32con.WM_KEYUP,win32con.VK_RETURN,0) # 控制按键,放松
'''青云客机器人(免费api)'''
def qyk(msg):
url = 'http://api.qingyunke.com/api.php?key=free&appid=0&msg=' + msg
ua = UserAgent()
headers = {
'User_Agent': ua.random # 伪装User_Agent信息
}
response = requests.get(url=url,headers = headers)
response.encoding = 'utf-8'
text = response.text
info = re.findall(r'\"\[.*?\"',text)
weather = info[0].replace('"','')
return weather
'''定时任务'''
def timingJob(to,msg):
scheduler = BlockingScheduler() # 创建调度器
scheduler.add_job(sendMsg,'interval',seconds=30,args = [to,msg]) # interval间隔,10s
# scheduler.add_job(sendMsg,'cron',hour='22-23',minute='49',second='*/10',args = [to,msg]) # cron定时,10s
scheduler.start() # 开启定时任务
if __name__ == '__main__':
to = input('请填写解接收人QQ :')
msg = qyk('重庆天气')
timingJob(to,msg)
青云客的机器人是个“智障”,目前应该还是测试收集数据阶段,所以有很多逻辑不全面(不然怎么是免费的呢,还是给青云客的机器人开发人员点个赞)