用Python开发一个AI消息回复机器人

简介: 用Python开发一个AI消息回复机器人

女友经常大半夜缠着你,让你陪她来聊天该咋办?

不要慌……会Python的我不会被这点小事所难倒

今天教你用Python开发一个AI消息自动回复机器人

基于pyautogui模块开发

本文仅消息回复内容,并不是十分丰富,你可以在此基础上自行扩展

比如接入第三方机器人API

 


   程序设计流程

 

 


      如何获取坐标位置?    获取坐标位置,我们可以使用wx自带的截图工具,通过移动鼠标来确定坐标位置

 


   代码实战 先来观察一番,发现微信在收到新消息时会有一个特征:在聊天列表会有一条新消息并带一个红色的小“1”图标;如下所示

我们把这个小“1”图标截图,并放至项目的目录里



 

发现这个规律后,我们可以使用pyautogui这个包的

locateCenterOnScreen() 方法来找到小“1”图标在整个屏幕中的坐标位置。一:找到图标了我们需要去点击这条新消息在屏幕中的坐标位置:

location = pg.locateCenterOnScreen('img/newmsg.png', confidence=0.9)

二:右击复制消息至剪切板

pg.click(pos[0], pos[1], button='right')
x, y = pg.locateCenterOnScreen('img/copy.png', confidence=0.9)
pg.click(x, y, button='left')


三:获取剪切板中的内容,并获取的内容传给自定义消息函数

text = getCliText().decode('GB2312')
msg = message(text)


四:点击输入框所在坐标位置,并复制最后一条消息内容

pg.click(inputPos[0], inputPos[1], button='left')
pc.copy(msg)


五:粘贴匹配到的消息内容,并发送新消息

pg.hotkey('ctrl', 'v')
pg.hotkey('enter')
print(f'收到消息:{text}')
print(f'发送消息:{msg}')


六:重新右击消息联系人,并点击不显示该聊天(避免下次最新消息变成已读状态)

pg.click(location.x, location.y, button='right')
dispos = pg.locateCenterOnScreen('img/undisplay.png', confidence=0.9)
pg.click(dispos.x, dispos.y, button='left')


上述步骤三中的函数:

 

获取剪切板

def getCliText():
    wc.OpenClipboard()
    text = wc.GetClipboardData(win32con.CF_TEXT)
    wc.CloseClipboard()
    return text


自定义消息函数

 

def message(msg):
    try:
        keyword = {
            '你是谁': '我是你的宝贝啊~',
            '哈哈哈': '什么事情这么开心?',
            '早安': '早安呀~',
            '在干吗': '在想你呀宝'
        }
        return keyword[msg]
    except:
        return '暂时还不能理解你在说什么……'


最后奉上全部代码:

import time, win32con
import win32clipboard as wc
import pyperclip as pc
import pyautogui as pg
# 设置操作间隙为1s
pg.PAUSE = 1
# 最后一条消息所在坐标位置
pos = (1349, 754)
# 输入框所在坐标位置
inputPos = (1304, 875)
# 获取剪切板内容
def getCliText():
    wc.OpenClipboard()
    text = wc.GetClipboardData(win32con.CF_TEXT)
    wc.CloseClipboard()
    return text
# 自定义消息函数(如果为匹配到消息则返回暂时还不理解你在说什么……
def message(msg):
    try:
        keyword = {
            '你是谁': '我是你的宝贝啊~',
            '哈哈哈': '什么事情这么开心?',
            '早安': '早安呀~',
            '在干吗': '在想你呀宝'
        }
        return keyword[msg]
    except:
        return '暂时还不能理解你在说什么……'
def send_msg():
    while True:
        # 获取新消息在屏幕中的坐标位置
        location = pg.locateCenterOnScreen('img/newmsg.png', confidence=0.9)
        # 如果找到新消息的坐标位置
        if location is not None:
            print(f'\r{location}')
            # 点击新消息所在坐标位置并右键复制最后一条消息在屏幕中的坐标位置
            pg.click(location.x, location.y, button='left')
            pg.click(pos[0], pos[1], button='right')
            x, y = pg.locateCenterOnScreen('img/copy.png', confidence=0.9)
            pg.click(x, y, button='left')
            # 获取剪切板中的内容,并获取的内容传给自定义消息函数
            text = getCliText().decode('GB2312')
            msg = message(text)
            # 点击输入框所在坐标位置
            pg.click(inputPos[0], inputPos[1], button='left')
            pc.copy(msg)
            # 粘贴新匹配到消息,并发送
            pg.hotkey('ctrl', 'v')
            pg.hotkey('enter')
            print(f'收到消息:{text}')
            print(f'发送消息:{msg}')
            # 重新右击消息联系人,并点击不显示该聊天(避免下次最新消息变成已读状态)
            pg.click(location.x, location.y, button='right')
            dispos = pg.locateCenterOnScreen('img/undisplay.png', confidence=0.9)
            pg.click(dispos.x, dispos.y, button='left')
if __name__ == '__main__':
     send_msg()
相关文章
|
21天前
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的大学竞赛报名管理系统
基于Python+Vue开发的大学竞赛报名管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的大学竞赛报名管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
33 3
基于Python+Vue开发的大学竞赛报名管理系统
|
8天前
|
Linux Android开发 iOS开发
开源的Python库,用于开发多点触控应用程序
Kivy是一款开源Python库,专为开发多点触控应用设计,支持Android、iOS、Linux、OS X和Windows等平台。本文将指导你使用Kivy创建“Hello World”应用并打包成Android APK。首先通过`pip install kivy`安装Kivy,然后创建并运行一个简单的Python脚本。接着,安装Buildozer并通过`buildozer init`生成配置文件,修改相关设置后,运行`buildozer -v android debug`命令打包应用。完成构建后,你将在`./bin/`目录下找到类似`your-app-debug.apk`的文件。
14 2
|
13天前
|
SQL 安全 Go
SQL注入不可怕,XSS也不难防!Python Web安全进阶教程,让你安心做开发!
在Web开发中,安全至关重要,尤其要警惕SQL注入和XSS攻击。SQL注入通过在数据库查询中插入恶意代码来窃取或篡改数据,而XSS攻击则通过注入恶意脚本来窃取用户敏感信息。本文将带你深入了解这两种威胁,并提供Python实战技巧,包括使用参数化查询和ORM框架防御SQL注入,以及利用模板引擎自动转义和内容安全策略(CSP)防范XSS攻击。通过掌握这些方法,你将能够更加自信地应对Web安全挑战,确保应用程序的安全性。
43 3
|
20天前
|
IDE 数据挖掘 开发工具
python开发
python开发
13 3
|
22天前
|
SQL JavaScript 前端开发
用Java、Python来开发Hive应用
用Java、Python来开发Hive应用
22 6
|
22天前
|
Unix Shell Linux
nohup python -u ai_miniprogram_main.py > ../iwork.out 2>&1 & 这句命令是做什么的?
nohup python -u ai_miniprogram_main.py > ../iwork.out 2>&1 & 这句命令是做什么的?
9 1
|
22天前
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的体育用品商城管理系统
基于Python+Vue开发的体育用品商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的体育用品销售商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
19 0
基于Python+Vue开发的体育用品商城管理系统
|
22天前
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的母婴商城管理系统
基于Python+Vue开发的母婴商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的网上母婴商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
17 0
基于Python+Vue开发的母婴商城管理系统
|
22天前
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的婚恋交友管理系统
基于Python+Vue开发的婚恋交友管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的婚恋相亲交友系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
18 0
基于Python+Vue开发的婚恋交友管理系统
|
8天前
|
iOS开发 Python
6-8|如何使用Python语言开发IOS混淆工具
6-8|如何使用Python语言开发IOS混淆工具

热门文章

最新文章

下一篇
无影云桌面