溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

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

發(fā)布時(shí)間:2021-09-15 18:20:39 來(lái)源:億速云 閱讀:148 作者:小新 欄目:編程語(yǔ)言

這篇文章給大家分享的是有關(guān)如何利用Python制作微信小客服的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。

整體思路:利用自動(dòng)化測(cè)試庫(kù)達(dá)到預(yù)期效果。

運(yùn)行環(huán)境:PyCharm Python

碼字流程

  • 獲取微信的PID

  • 連接到微信

  • 微信的一些基本功能

  • 獲取用戶發(fā)來(lái)的消息獲取聊天信息用戶在聊天界面找到某個(gè)用戶搜索某個(gè)用戶向某個(gè)用戶發(fā)送文本信息刪除某個(gè)用戶

  • 微信的一些額外功能

  • 修改備注添加指定申請(qǐng)好友一鍵添加所有申請(qǐng)好友發(fā)送圖片至指定用戶接收超級(jí)用戶指令,處理相關(guān)任務(wù)接收普通用戶指令,回復(fù)相關(guān)內(nèi)容一鍵刪除所有好友掉線通知超級(jí)用戶掉線自動(dòng)重登對(duì)接其他接口,完成相關(guān)任務(wù)收藏信息自動(dòng)收款判斷金額并通知超級(jí)用戶對(duì)接數(shù)據(jù)庫(kù),判斷用戶是否在使用該功能的期限內(nèi)一鍵通知信息至好友指定好友消息免打擾群踢出成員轉(zhuǎn)發(fā)信息發(fā)送收藏中的內(nèi)容至用戶發(fā)送本地文件至用戶

獲取微信的PID

這里用到了psutil庫(kù),大概意思是獲取所有的進(jìn)程,遍歷挑選出微信的進(jìn)程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

連接到微信

# 創(chuàng)建一個(gè)實(shí)例對(duì)象,Pywinauto中backend有兩種:win32和uia,默認(rèn)為win32。可使用spy++和Inspect工具判斷backend適合寫(xiě)哪種。在這里微信為'uia' self.app = Application(backend = 'uia')  # 將 app 連接到已經(jīng)登陸成功的微信,這里可以用進(jìn)程ID、句柄、以及程序路徑進(jìn)行連接,此處采用PID self.app.connect(process = PID )  # 定位到微信窗口 self.win = app[u'微信']

微信的一些基本功能

獲取用戶發(fā)來(lái)的消息

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:         # 定位到信息列表,獲取這個(gè)對(duì)象         conunacation = self.win.child_window(title = "會(huì)話",control_type = "List")         # 定位到這個(gè)位置         position = conunacation.rectangle()         mouse.click(button = 'left',coords = (position.left + 100 ,position.top + 10 ))                  # 定位到列表的位置,取他的子控件,至于為何,列表是一個(gè)總的容器,而每個(gè)用戶都存在這個(gè)容器中,固取子控件         users = conunacation.children()         for user in users:             user_lis.append(user.window_text())     except:         pass     return user_lis

在聊天界面找到某個(gè)用戶

def find_user (self ,user = ''):     # 找到指定名稱用戶的按鈕     user = self.win.child_window(title = user, control_type = 'Text')          # 定位到該按鈕,獲取它的相對(duì)位置     position = user .rectangle()          # 模擬點(diǎn)擊,coords 是點(diǎn)擊的位置     mouse.click (button = 'left',coords = (position.left ,position.top))     sleep(0.3)

搜索某個(gè)用戶

def search_ueser (self ,user_name = ''):     # 找控件的方法如上個(gè)函數(shù)中介紹,此處不再繼續(xù)介紹     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}')

向某個(gè)用戶發(fā)送文本信息

def send_message (self ,texts =''):#line:64     for text in texts .split ('\n'):#line:65         # 這里用到了另外的一個(gè)庫(kù),因?yàn)橛胮ywinauto 自帶的輸入模塊,表情,空格等是自動(dòng)略過(guò)或者識(shí)別不出,達(dá)不到按原有縮進(jìn)樣式縮進(jìn)的效果         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

刪除某個(gè)用戶

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))     # 這里右鍵會(huì)彈出菜單,直接點(diǎn)擊該菜單中的刪除聊天選項(xiàng)     self.app.Menu ['刪除聊天'].click_input('left')

感謝各位的閱讀!關(guān)于“如何利用Python制作微信小客服”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI