程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python WeChat automation tool development series 03_Automatically send information and files to WeChat friends (available in July 2022)

編輯:Python

前言

一個需求
需要利用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的代碼的話,

  • 1、先測試下你的賬號是否還可以登錄微信網頁端

https://wx.qq.com/
騰訊官方雖然沒有正式的發表聲明,但是你搜一下可以看到相關信息
大概從去年開始(時間不太確定),大部分微信賬號都不可以繼續登錄微信網頁端,只有少部分賬號還可以登錄.
原因未知.

  • 2、如果可以登錄微信網頁版 那麼你可以關閉這個博客去網上找下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)"

使用步驟

1. 新建main03.py

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)

2. 打開微信

  • windows10下打開微信客戶端 (注:if in english,Remember to click on the bottom left cornerSettings-> General 切換為中文)
  • 正常掃碼登錄
  • 打開微信窗口到前面,不要最小化或者縮小到底部菜單

3. 執行代碼

打開cmd窗口,在cmd窗口執行:

如果沒有安裝第三方庫,參考上面的安裝步驟進行安裝再執行下面命令

cd E:\2022Python # 修改為你的main03.py所在路徑
python3 main03.py

4. 輸出

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月 可用


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved