微信消息自动回复

本文介绍了如何编写一个使用Python编写的微信自动回复程序,通过pyautogui库实现点击屏幕、截图识别文字,并根据关键词库进行回复。程序通过定位并点击特定区域来接收新消息,然后识别聊天区的文字并作出相应回复。
摘要由CSDN通过智能技术生成

这一篇写一个微信自动回复消息的程序


先导入库

import pyautogui as pyg
import pyperclip as pyc
import random
import time
from cnocr import CnOcr

写三个列表,分别是关键词,对应回复内容,和一个随机回复内容

key_list = ["在吗","在干什么","吃了没"]
reply_list = ["在","在看电视","还没"]
random_list = ["对对对","好好好","行行行"]

定义三个函数备用,分别实现点击目标、截图识别文字、根据情况回复消息的功能。

def click_target(img_target=str,surching_region=[],num=int):
    """
    img_target:目标相对路径
    surching_region:搜寻范围
    num:点击次数
    
    """
    img_position = pyg.locateCenterOnScreen(img_target,region=surching_region,confidence=0.7)
    pyg.click(img_position,clicks=num)
    time.sleep(2)

def ocr_repeat(Filename=str,surching_region=[]):
    """
    将微信聊天区截图
    识别文字
    """
    pyg.screenshot(imageFilename=Filename,region=surching_region)
    ocr = CnOcr()
    out_ocr = ocr.ocr(Filename)
    last_text = []
    last_text = [i["text"] for i in out_ocr if i["score"]>0.4]
    text = last_text[-1]
    print(text)
    return text


def repeat(receive_text=str):
    """
    回复消息
    repeat_text是回复的内容
    """
    for index,item in enumerate(key_list):
        if item == receive_text:
            repeat_text = reply_list[index]
            break
        else:
            repeat_text = random.choice(random_list)
    pyc.copy(text=repeat_text)
    pyg.hotkey("ctrl","v")
    pyg.press("enter")

写一个主函数实现功能,并且用try和while True实现不断检测新的消息的功能。

pyg.click(x=1779,y=19)	#点击缩小vscode界面
click_target(img_target="wechat.png",surching_region=[0,0,1920,1080],num=2)

# 主函数
def reply_run():
    time.sleep(2)
    click_target(img_target="new.png",surching_region=[457,185,314,734],num=1)
    # 检测新消息的红点
    time.sleep(1)
    pyg.click(x=831,y=813)	#点击消息回复框,以便输入回复消息
    receive = str
    receive = ocr_repeat(Filename="chat.png",surching_region=[770,186,759,569])
    repeat(receive_text=receive)

#利用循环,不断检测新消息并回复
while True:
    try:
        reply_run()
    except:
        time.sleep(5)

运行调试
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值