如何利用Python制作微信小客服

发布时间:2021-09-15 18:20:39 作者:小新
来源:亿速云 阅读:158

这篇文章给大家分享的是有关如何利用Python制作微信小客服的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

整体思路:利用自动化测试库达到预期效果。

运行环境:PyCharm Python

码字流程

获取微信的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制作微信小客服”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

推荐阅读:
  1. 微信小程序在线客服系统都有哪些功能?
  2. 微信小程序如何实现在线客服功能

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python

上一篇:hbase怎么在不同版本hdfs集群之间转移数据

下一篇:如何利用IDA Python来枚举Windows的系统调用表

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》