您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關如何利用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制作微信小客服”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。