|
原理是通过从网上爬取情话,复制到剪切板,再通过win32py框架获取Windwos系统窗口,微信QQ都可以,然后发送消息,只需要修改不同的类名和窗口名即可
- import win32api, win32gui, win32con
- import win32clipboard as clipboard
- import time
- import requests
- import re
- from apscheduler.schedulers.blocking import BlockingScheduler
-
- qhdqs = [] #建一个空列表装网上的情话
-
- def send_m(win):
- # 以下为“CTRL+V”组合键,回车发送,(方法一)
- win32api.keybd_event(17, 0, 0, 0) # 有效,按下CTRL
- time.sleep(1) # 需要延时
- win32gui.SendMessage(win, win32con.WM_KEYDOWN, 86, 0) # V
- win32api.keybd_event(17, 0, win32con.KEYEVENTF_KEYUP, 0) # 放开CTRL
- time.sleep(1) # 缓冲时间
- win32gui.SendMessage(win, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0) # 回车发送
- return
- def txt_ctrl_v(txt_str):
- # 定义文本信息,将信息缓存入剪贴板
- clipboard.OpenClipboard()
- clipboard.EmptyClipboard()
- print('请注意:')
- clipboard.SetClipboardData(win32con.CF_UNICODETEXT, txt_str)
- clipboard.CloseClipboard()
- return
- # def day_english():
- # # 获取金山词霸每日一句
- # url = 'http://open.iciba.com/dsapi'
- # r = requests.get(url)
- # content = r.json()['content']
- # note = r.json()['note']
- # print(content + note)
- # return content + note
- def get_window(className, titleName):
- title_name = className # 单独打开,好友名称
- win = win32gui.FindWindow(className, titleName)
- # 窗体前端显示
- # win32gui.SetForegroundWindow(win)
- # 使窗体最大化
- # win32gui.ShowWindow(win, win32con.SW_MAXIMIZE)
- win = win32gui.FindWindow(className, titleName)
- print("找到句柄:%x" % win)
- if win != 0:
- left, top, right, bottom = win32gui.GetWindowRect(win)
- print(left, top, right, bottom) # 最小化为负数
- win32gui.SetForegroundWindow(win) # 获取控制
- time.sleep(0.5)
- else:
- print('请注意:找不到【%s】这个人(或群),请激活窗口!' % title_name)
- return win
- #######################发送过程=================
- def sendTaskLog():
- # 查找微信小窗口
- # win = get_window('ChatWnd', '文件传输助手')
- # 读取文本
- #file = open(r'F:\tasklog.txt', mode='r', encoding='UTF-8')
- #str = file.read()
- #print(str)
- for i in range(1000,2010):
- #try:
- url = "http://www.ainicr.cn/qh/" + str(i) + ".html"
- #找到一个情话网站,网站规律很简单,从1000开始,每页大概10句,2000页的话是20000句情话
- #应该够听了吧
- response = requests.get(url).text #用requests.get()函数访问页面并获得信息
- counts = re.findall('<p>(.*?)</p></a>',response)
- #用正则表达式提取信息
- #网站程序员估计忙着谈恋爱去了,太容易抓取和清洗了
- #不过也许是为了帮助广大程序员爬取情话爱哄女朋友
- for count in counts: #依次获取情话
- qhdqs.append(count) #把情话添加到情话大全中
- #except:
- # pass #出错的话就跳过,两万句情话,少个百十条不重要
- win = get_window('TXGuiFoundation', '好友备注') #ChatWnd微信 TXGuiFoundation QQ
- for str1 in qhdqs: #从情话大全中提取情话
- #my_friend.send(qh) #给女朋友发情话
- print(str1)
- txt_ctrl_v(str1)
- send_m(win)
- scheduler = BlockingScheduler()
- # scheduler.add_job(sendTaskLog, 'interval', seconds=3)
- # scheduler.add_job(sendTaskLog, 'cron',day_of_week='mon-fri', hour=7,minute=31,second='10',misfire_grace_time=30)
- scheduler.add_job(sendTaskLog, 'cron', hour='*', second='*/5')
- try:
- # scheduler.start()
- sendTaskLog()
- except (KeyboardInterrupt, SystemExit):
- pass
复制代码 现在女朋友已经成功把我拉黑...下次我把频率设低一点应该就没事了
|
|