如何利用Python制作微信小客服
发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,这篇文章给大家分享的是有关如何利用Python制作微信小客服的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。整体思路:利用自动化测试库达到预期效果。运行环境:PyCharm
千家信息网最后更新 2025年02月03日如何利用Python制作微信小客服
这篇文章给大家分享的是有关如何利用Python制作微信小客服的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
整体思路:利用自动化测试库达到预期效果。
运行环境:PyCharm Python
码字流程
获取微信的PID
连接到微信
微信的一些基本功能
获取用户发来的消息获取聊天信息用户在聊天界面找到某个用户搜索某个用户向某个用户发送文本信息删除某个用户
微信的一些额外功能
修改备注添加指定申请好友一键添加所有申请好友发送图片至指定用户接收超级用户指令,处理相关任务接收普通用户指令,回复相关内容一键删除所有好友掉线通知超级用户掉线自动重登对接其他接口,完成相关任务收藏信息自动收款判断金额并通知超级用户对接数据库,判断用户是否在使用该功能的期限内一键通知信息至好友指定好友消息免打扰群踢出成员转发信息发送收藏中的内容至用户发送本地文件至用户
获取微信的PID
这里用到了psutil库,大概意思是获取所有的进程,遍历挑选出微信的进程ID
#!/usr/bin/env python # -*- coding:utf-8 -*- # Author:smart_num_1 # Blog:https://blog.csdn.net/smart_num_1 from psutil import process_iter def get_pid(): PID = process_iter() name = '' pid_num = 0 for pid_temp in PID: pid_dic = pid_temp.as_dict(attrs = ['pid','name']) if pid_dic ['name'] == 'WeChat.exe': name = pid_dic ['name'] pid_num = pid_dic ['pid'] break if name =='WeChat.exe': return pid_num else : return False
连接到微信
# 创建一个实例对象,Pywinauto中backend有两种:win32和uia,默认为win32。可使用spy++和Inspect工具判断backend适合写哪种。在这里微信为'uia' self.app = Application(backend = 'uia') # 将 app 连接到已经登陆成功的微信,这里可以用进程ID、句柄、以及程序路径进行连接,此处采用PID self.app.connect(process = PID ) # 定位到微信窗口 self.win = app[u'微信']
微信的一些基本功能
获取用户发来的消息
def get_text(self): data = '' try: data = self.win.Edit2.get_value() with open('./temporary_text','w',encoding = 'utf-8') as f: f.write(data) except: pass return data #line:4
获取聊天信息用户
def get_users(self): user_lis = [] try: # 定位到信息列表,获取这个对象 conunacation = self.win.child_window(title = "会话",control_type = "List") # 定位到这个位置 position = conunacation.rectangle() mouse.click(button = 'left',coords = (position.left + 100 ,position.top + 10 )) # 定位到列表的位置,取他的子控件,至于为何,列表是一个总的容器,而每个用户都存在这个容器中,固取子控件 users = conunacation.children() for user in users: user_lis.append(user.window_text()) except: pass return user_lis
在聊天界面找到某个用户
def find_user (self ,user = ''): # 找到指定名称用户的按钮 user = self.win.child_window(title = user, control_type = 'Text') # 定位到该按钮,获取它的相对位置 position = user .rectangle() # 模拟点击,coords 是点击的位置 mouse.click (button = 'left',coords = (position.left ,position.top)) sleep(0.3)
搜索某个用户
def search_ueser (self ,user_name = ''): # 找控件的方法如上个函数中介绍,此处不再继续介绍 search = self.win.child_window(title = "搜索", control_type = "Edit") position = search.rectangle() mouse.click(button = 'left', coords = (position.left + 100 ,position.top + 10)) sleep(0.1) mouse.click(button = 'left', coords = (position.left + 100 ,position.top + 10)) # 自带的模块,输入该用户的名字 self.win.type_keys(user_name) sleep(0.6) self.win.type_keys('{ENTER}')
向某个用户发送文本信息
def send_message (self ,texts =''):#line:64 for text in texts .split ('\n'):#line:65 # 这里用到了另外的一个库,因为用pywinauto 自带的输入模块,表情,空格等是自动略过或者识别不出,达不到按原有缩进样式缩进的效果 if text.isalnum(): copy(text.strip()) hotkey ('ctrl', 'v') else: self.win.type_keys(text) sleep(0.1) hotkey ('ctrl', 'enter')#line:67 hotkey ('enter')#line:68
删除某个用户
def delete_user(self ,user =''): user = self.win.child_window(title = user, control_type = 'Text') position = user.rectangle() mouse.click(button = 'right', coords = (position.left - 40 ,position.top)) # 这里右键会弹出菜单,直接点击该菜单中的删除聊天选项 self.app.Menu ['删除聊天'].click_input('left')
感谢各位的阅读!关于"如何利用Python制作微信小客服"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
用户
信息
好友
定位
位置
内容
功能
控件
消息
进程
一键
搜索
小客
制作
任务
容器
对象
按钮
效果
文本
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
怎样隐藏wps的行数据库
vue服务器实时数据交互
仙梦奇缘服务器在哪里
杭州网络安全插画
忻州网络技术市场报价
西外网络技术
二手服务器cpu讲解
猫网互联网科技有限公司广东
sqlite数据库手动建表
服务器的性能要求
上海传统网络安全
镇江新区平昌网络技术有限公司
游戏与服务器p2p连接失败
管家婆辉煌2数据库名称
芯城科技园互联网公司
涉密服务器硬盘怎么处理
徐汇区创新数据库销售价格
服务器阵列没了数据可以恢复吗
我的世界可以氪金的服务器推荐
免费开源的个人媒体服务器
保定冀麦软件开发有限公司
网络安全示范校申请材料
盛世天佑(北京)网络技术
深圳服务器系统集成哪家靠谱
二手服务器cpu讲解
数据库事务日志如何查看
安徽什么是软件开发设施有哪些
退出华为账号 删除数据库
单行数据库
配家互联网科技有限公司