一個需求
需要利用Python+第三方庫wxauto 用於微信上自動獲取聊天信息,從而根據自己需求對信息自動進行二次處理,
比如自動回復,再比如自動發送文件或者其他.
--- 記錄於2022年07月
使用Python3的第三方庫wxauto
, 它適用於Windows的微信客戶端
官網: https://github.com/cluic/wxauto
This is the third article in the WeChat automation tool development series
代碼的主要功能:
PythonAutomatically send messages to WeChat friends,發送文件
PythonAutomatically send files to multiple WeChat friends,Send multiple files per friend
注:wxauto.py裡面的第252行進行修改,否則運行會報錯
微信版本 3.7.5.23 更新導致的問題
The following modifications are required to fix,修改第252行為:
copydata = COPYDICT[i].replace(b'<EditElement type="0" pasteType="0"><![CDATA[ ]]>', key.encode()).replace(b'type="0"', b'type="3"')
這邊使用
wxauto
來進行開發,而不是itchat
,原因如下
itchat
都是之前的教程,
本質上是用的微信的網頁端的接口來進行數據交互的.
如果你想要使用itchat
的代碼的話,
https://wx.qq.com/
騰訊官方雖然沒有正式的發表聲明,但是你搜一下可以看到相關信息
大概從去年開始(時間不太確定),大部分微信賬號都不可以繼續登錄微信網頁端,只有少部分賬號還可以登錄.
原因未知.
itchat
的代碼來學習運行下,如果登錄失敗,那麼或許你可以嘗試下wxauto
也就是這裡所說的方法來運行下.
Windows 10
Python 3.8.10
Windows 10的微信客戶端版本:3.7.5.23 (中文版本)
注:微信客戶端中文版跟英文版都可以
沒什麼太大區別.Chinese version is recommended,The English version now appears after the WeChat updateBug.
安裝Python3的第三方庫
wxauto
,具體步驟如下
官網: https://github.com/cluic/wxauto
在cmd窗口執行下面命令進行安裝
wxauto
python3 --version
python3 -m pip install wxauto -i https://pypi.tuna.tsinghua.edu.cn/simple
wxauto
是否安裝成功python3 -c "import wxauto; print(wxauto.VERSION)"
from wxauto import *
# 獲取當前微信客戶端
wx = WeChat()
# 獲取會話列表
wx.GetSessionList()
########################################################################################################################
# 函數功能: 單個用戶 Send a single file
########################################################################################################################
def send_file_to_single_user(file, user):
# 向某人發送文件(以`文件傳輸助手`為例,發送三個不同類型文件)
print("******************************************")
try:
print(f"Start to a single user`{
user}`發送文件:{
file}")
wx.ChatWith(who) # 打開`文件傳輸助手`聊天窗口
wx.SendMsg("123")
wx.SendFiles(file)
print("發送完畢")
except Exception as e:
print("發送失敗,原因:", e)
print("******************************************")
########################################################################################################################
# 函數功能: 單個用戶 Send a single file
########################################################################################################################
def send_files_to_mul_user(files, users):
print("******************************************")
# 向某人發送文件(以`文件傳輸助手`為例,發送三個不同類型文件)
for who in users:
print(f"開始跟{
who}發送文件")
wx.ChatWith(who)
for file in files:
print(f"向用戶`{
who}`發送文件:{
file}")
wx.SendFiles(file)
print("發送成功")
print("******************************************")
if __name__ == '__main__':
####################################################################################################################
# 函數功能: 單個用戶 Send a single file
####################################################################################################################
file = r'C:\Users\Pictures\202205\01.jpg' # Change it to your file path
who = '文件傳輸助手' # 適用於中文版微信
send_file_to_single_user(file=file, user=who)
####################################################################################################################
# 函數功能: 多個用戶 Send multiple files per user
####################################################################################################################
whos = ['文件傳輸助手', '什麼'] # 適用於中文版微信
files = [r'C:\Users\Pictures\202205\01.jpg',
r'C:\Users\Pictures\202205\02.jpg'] # Change it to your file path
send_files_to_mul_user(files=files, users=whos)
Settings
-> General
切換為中文)打開cmd窗口,在cmd窗口執行:
如果沒有安裝第三方庫,參考上面的
安裝
步驟進行安裝再執行下面命令
cd E:\2022Python # 修改為你的main03.py所在路徑
python3 main03.py
cmdThe window output is :
PS E:\2022Python> python3 main03.py
******************************************
Start to a single user`文件傳輸助手`發送文件:C:\Users\Pictures\202205\01.jpg
發送完畢
******************************************
******************************************
Start sending files with File Transfer Assistant
向用戶`文件傳輸助手`發送文件:C:\Users\Pictures\202205\01.jpg
向用戶`文件傳輸助手`發送文件:C:\Users\Pictures\202205\02.jpg
Start sending files with what
向用戶`什麼`發送文件:C:\Users\Pictures\202205\01.jpg
向用戶`什麼`發送文件:C:\Users\Pictures\202205\02.jpg
發送成功
******************************************
這邊剛開始寫一下系列文章,想發展下自己的博客和微信公眾號賬號
如果對你有幫助,方便的話可以關注下 博客左側的微信公眾號(點擊我的頭像進入個人中心,位於左側下方)
如有問題的話,也可通過公眾號直接留言,這邊有微信提醒,可以幾小時內及時回復
也可直接在CSDN博客留言或者私信留言,這個沒有微信提醒,所以這邊可能一天或者幾天內給回復
微信公眾號所在位置:打開
個人中心
也就是這個鏈接
https://blog.csdn.net/xiaozi_001?type=blog
左側下方
如有需求,
想要對微信進行一些自動化操作來提高效率:
比如
自動群發不同聊天信息到幾個微信群裡
自動群發不同的圖片到幾個微信群裡
自動群發不同的文件到幾個微信群裡
如果你本身懂代碼的話, 直接看第三方庫
wxauto
的使用,自己來寫就可以了,博客後續也會基於這個系列繼續更新.
歡迎點贊留言提出問題,方便的話 點贊收藏 關注下微信公眾號
只是想要一個簡單的微信處理工具來滿足自己的需求的話
可以微信公眾號留言或者私信留言,
發下你的具體需求,這邊後續根據你的需求進行下二次開發
如有需求,可關注下博客左側的微信公眾號留言或者直接私信留言
前者可以幾小時內及時回復
後者可能看的不及時,大概一天或者幾天內有回復
如有問題 歡迎提出
如有疑問 歡迎留言
如有作用 歡迎點贊
如有失效 歡迎留言
2022年07月 可用
Preface Python Daily practice