概述
一、主要通过 1、百度orc识别图片的文字
2、pyautogui截图,模拟粘贴
3、pymouse模拟鼠标点击
4、pyperclip模拟键盘复制
二、思路:
1、对微信聊天框进行截图作为原始图1
2、循环对聊天框进行截图,和原始图1进行相似度对比
3、如果相似度有差距,判定为有新的消息
4、对聊天区域进行截图,识别聊天的文字
5、通过预置的聊天对话,进行回复
6、循环2
三、效果:
四、插入代码:
main.py
'''
自动聊天小工具
'''
import os
import time
from aip import AipOcr
from skimage.measure import compare_ssim
import cv2
import pyautogui
from pymouse import PyMouse
from conf import *
from pyperclip import copy, paste
class Wechat:
def __init__(self):
self.one_abs = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'one.jpg')
self.two_abs = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'two.jpg')
self.read_need = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'read.jpg')
self.client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
self.mouse = PyMouse()
self.message = {
"在吗?": '亲爱的,我在!',
"你在干什么?": "亲爱的,我在学习!",
"吃饭了吗": '还没有,一会下班了一块吃大餐!'
}
def click(self, x, y, m):
m.click(x, y)
def snap(self, x, y, w, h, name):
# 截图
if os.path.exists(name):
os.remove(name)
im = pyautogui.screenshot(region=(x, y, w, h)) # 左上,宽高
im.save(name)
def compare_image(self, path_image1, path_image2):
imageA = cv2.imread(path_image1)
imageB = cv2.imread(path_image2)
grayA = cv2.cvtColor(imageA, cv2.COLOR_BGR2GRAY)
grayB = cv2.cvtColor(imageB, cv2.COLOR_BGR2GRAY)
(score, diff) = compare_ssim(grayA, grayB, full=True)
print("SSIM: {}".format(score))
return score
def get_file_content(self, filePath):
with open(filePath, 'rb') as fp:
return fp.read()
def run(self):
# 1、对微信聊天框进行截图作为原始图1
self.snap(876, 149, 875, 800, self.one_abs)
i = 0
while True:
i += 1
print('===idx:{}'.format(i))
# 2、循环对聊天框进行截图,和原始图1进行相似度对比
self.snap(876, 149, 875, 800, 'two.jpg')
same = self.compare_image(self.one_abs, self.two_abs)
print('====相似度:{}'.format(same))
if same < 0.98:
# # 3、如果相似度有差距,判定为有新的消息
# 4、对聊天区域进行截图,识别聊天的文字
self.snap(876, 695, 486, 55, 'read.jpg')
image = self.get_file_content(self.read_need)
r = self.client.basicGeneral(image)
res_msg = r.get('words_result')[0].get('words')
# 5、通过预置的聊天对话,进行回复
send_msg = self.message.get(res_msg)
print(send_msg)
self.click(1131, 840, self.mouse)
copy(send_msg)
pyautogui.hotkey('ctrl', 'v')
self.click(1284, 923, self.mouse)
self.click(1053, 1061, self.mouse)
time.sleep(1)
self.snap(876, 149, 875, 800, self.one_abs)
else:
continue
pass
if __name__ == '__main__':
Wechat().run()
conf
# 百度信息
APP_ID = '2447122254'
API_KEY = 'Hj3stMaaZ1jAdeGfLd6wIO14dSlWc'
SECRET_KEY = 'jn1G6CjlPtfSEpmOGxREOQ4N2R58aVXT0z'
最后
以上就是乐观滑板为你收集整理的python微信自动聊天小工具的全部内容,希望文章能够帮你解决python微信自动聊天小工具所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复