python wxauto教程
微信對(duì)于自身軟件的定位問(wèn)題,官方不支持微信機(jī)器人,并且也沒(méi)有開(kāi)放官方機(jī)器人的計(jì)劃。
并且由于官方對(duì)基于網(wǎng)頁(yè)協(xié)議的微信機(jī)器人持打擊的態(tài)度,從2020年開(kāi)始,騰訊就對(duì)網(wǎng)頁(yè)版微信進(jìn)行了限制登錄,使得很多曾經(jīng)大量被使用的基于微信網(wǎng)頁(yè)接口的第三方庫(kù)如Itchat、wxpy等都無(wú)法使用了。至此,想要開(kāi)發(fā)微信機(jī)器人,只能基于桌面版協(xié)議登錄了。
下面這個(gè)是在github發(fā)現(xiàn)的一個(gè)開(kāi)源自動(dòng)化操作微信的一個(gè)項(xiàng)目
它是Windows版本微信客戶端自動(dòng)化,可實(shí)現(xiàn)簡(jiǎn)單的發(fā)送、接收微信消息。開(kāi)發(fā)者提醒,部分版本的微信可能由于UI界面不同從而無(wú)法使用,經(jīng)過(guò)筆者測(cè)試,截至2022-08的最新版本桌面端微信運(yùn)行沒(méi)有問(wèn)題。這里是github地址:
一、安裝
pip install wxauto
首先在使用wxauto之前,必須先登錄PC微信客戶端!不然wxauto無(wú)從獲取你的微信消息。
from wxauto import *
# 獲取當(dāng)前微信客戶端
wx = WeChat()
# 獲取會(huì)話列表
wx.GetSessionList()
who = '好友名字或者群名'
# 打開(kāi)聊天窗口
wx.ChatWith(who)
# 此處加個(gè)1可以自動(dòng)滑到所有聊天記錄,如果不加就只滑動(dòng)兩次刷新
wx.LoadMoreMessage(1)
msgs = wx.GetAllMessage
for msg in msgs:
print('%s : %s'%(msg[0], msg[1]))
三、向某人發(fā)送消息
msg = '你好'
who = '文件傳輸助手'
WxUtils.SetClipboard(msg) # 將內(nèi)容復(fù)制到剪貼板,類似于Ctrl + C
wx.ChatWith(who) # 打開(kāi)`文件傳輸助手`聊天窗口
wx.SendClipboard() # 發(fā)送剪貼板的內(nèi)容,類似于Ctrl + V
# SendMsg()也可以發(fā)送消息
# wx.SendMsg(msg)
發(fā)送文件
file1 = 'D:/test/wxauto.py'
file2 = 'D:/test/pic.png'
file3 = 'D:/test/files.rar'
who = '文件傳輸助手'
wx.ChatWith(who)
wx.SendFiles(file1, file2, file3)
方法與發(fā)送消息類似,只要選中對(duì)話好友,然后使用
還可以實(shí)現(xiàn)根據(jù)群消息不同關(guān)鍵字進(jìn)行自動(dòng)回復(fù)等等SendFiles(self, *filepath, not_exists=‘ignore’)就可以向當(dāng)前聊天窗口發(fā)送文件了。參數(shù)not_exists默認(rèn)為ignore表示如果未找到指定文件,不會(huì)終止程序;參數(shù)*filepath表示要復(fù)制文件的絕對(duì)路徑,這里可以同時(shí)傳遞多個(gè)文件。這里還要說(shuō)明一下,為保證發(fā)送文件穩(wěn)定性,首次發(fā)送文件可能花費(fèi)時(shí)間較長(zhǎng),后續(xù)調(diào)用會(huì)縮短發(fā)送時(shí)間

浙公網(wǎng)安備 33010602011771號(hào)