我是靠谱客的博主 乐观滑板,最近开发中收集的这篇文章主要介绍python微信自动聊天小工具,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、主要通过 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微信自动聊天小工具所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部