Python微信自動化庫使用詳解
在Python中,有幾個庫可以用于微信自動化操作,包括itchat、wxpy、wechatpy和wxauto。以下是對這些庫的詳細介紹
1. itchat
簡介
itchat 是一個基于微信網(wǎng)頁版的 Python 庫,支持個人微信賬號的自動化操作,如登錄、發(fā)送消息、接收消息等。
前置條件
- 微信賬號:需要一個個人微信賬號。
- Python 環(huán)境:需要安裝 Python 3.x。
- 網(wǎng)絡(luò)連接:需要能夠訪問微信服務(wù)器。
依賴項
itchat庫。requests庫(itchat依賴的網(wǎng)絡(luò)請求庫)。
安裝依賴
pip install itchat
注意事項
- 微信限制:微信官方對非官方客戶端的限制越來越嚴格,可能會導(dǎo)致賬號被封禁。
- 登錄方式:需要掃碼登錄,且登錄狀態(tài)可能會過期。
- 僅支持個人微信:不支持微信公眾號或企業(yè)微信。
完整代碼示例
import itchat
# 登錄微信
itchat.auto_login(hotReload=True) # hotReload=True 可以在短時間內(nèi)重新登錄而不需要重新掃碼
# 發(fā)送消息
itchat.send("Hello, this is a test message!", toUserName='filehelper') # 發(fā)送給文件傳輸助手
# 獲取好友列表
friends = itchat.get_friends()
print("好友列表:")
for friend in friends:
print(friend['NickName']) # 打印好友的昵稱
# 監(jiān)聽消息
@itchat.msg_register(itchat.content.TEXT)
def text_reply(msg):
print(f"收到消息: {msg['Text']}")
return f"自動回復(fù): {msg['Text']}"
# 保持運行
itchat.run()
代碼注釋
itchat.auto_login(hotReload=True):登錄微信,hotReload=True表示熱加載,可以在短時間內(nèi)重新登錄而不需要重新掃碼。itchat.send():發(fā)送消息,toUserName參數(shù)指定接收者,filehelper表示文件傳輸助手。itchat.get_friends():獲取好友列表,返回一個包含好友信息的列表。@itchat.msg_register(itchat.content.TEXT):注冊一個消息處理函數(shù),當(dāng)收到文本消息時調(diào)用該函數(shù)。itchat.run():保持微信在線狀態(tài),監(jiān)聽消息。
2. wxpy
簡介
wxpy 是基于 itchat 的封裝庫,提供了更加簡潔的 API,適合快速開發(fā)微信機器人。
前置條件
- 微信賬號:需要一個個人微信賬號。
- Python 環(huán)境:需要安裝 Python 3.x。
- 網(wǎng)絡(luò)連接:需要能夠訪問微信服務(wù)器。
依賴項
wxpy庫。itchat庫(wxpy是基于itchat的封裝)。requests庫。
安裝依賴
pip install wxpy
注意事項
- 微信限制:與
itchat相同,存在被封號的風(fēng)險。 - 登錄方式:需要掃碼登錄。
- 僅支持個人微信:不支持微信公眾號或企業(yè)微信。
完整代碼示例
from wxpy import *
# 初始化機器人,掃碼登錄
bot = Bot()
# 發(fā)送消息
bot.file_helper.send("Hello, this is a test message!") # 發(fā)送給文件傳輸助手
# 獲取好友列表
friends = bot.friends()
print("好友列表:")
for friend in friends:
print(friend.nick_name) # 打印好友的昵稱
# 監(jiān)聽消息
@bot.register()
def reply_my_friend(msg):
print(f"收到消息: {msg.text}")
return f"自動回復(fù): {msg.text}"
# 保持運行
embed()
代碼注釋
Bot():初始化一個微信機器人,掃碼登錄。bot.file_helper.send():發(fā)送消息給文件傳輸助手。bot.friends():獲取好友列表,返回一個包含好友信息的列表。@bot.register():注冊一個消息處理函數(shù),當(dāng)收到消息時調(diào)用該函數(shù)。embed():保持微信在線狀態(tài),監(jiān)聽消息。
3. wechatpy
簡介
wechatpy 是一個微信公眾平臺和微信企業(yè)號的 Python SDK,支持微信公眾號和企業(yè)號的開發(fā)。
前置條件
- 微信公眾號或企業(yè)微信賬號:需要已經(jīng)注冊并配置好微信公眾號或企業(yè)微信。
- Python 環(huán)境:需要安裝 Python 3.x。
- 網(wǎng)絡(luò)連接:需要能夠訪問微信服務(wù)器。
- API 權(quán)限:需要獲取微信公眾號或企業(yè)微信的
app_id和app_secret。
依賴項
wechatpy庫。requests庫。
安裝依賴
pip install wechatpy
注意事項
- 僅支持公眾號和企業(yè)微信:不支持個人微信。
- API 限制:需要遵守微信官方的 API 調(diào)用頻率限制。
- 配置復(fù)雜:需要配置服務(wù)器 URL、Token 等。
完整代碼示例
from wechatpy import WeChatClient
# 初始化微信客戶端
client = WeChatClient('your-app-id', 'your-app-secret')
# 發(fā)送模板消息
template_id = 'your-template-id'
openid = 'user-openid'
data = {
'first': {'value': 'Hello, this is a test message!'},
'remark': {'value': 'This is a remark.'}
}
client.message.send_template(openid, template_id, data)
# 獲取用戶列表
users = client.user.get()
print("用戶列表:")
for user in users['data']['openid']:
print(user)
# 獲取用戶信息
user_info = client.user.get(openid)
print(f"用戶信息: {user_info}")
代碼注釋
WeChatClient('your-app-id', 'your-app-secret'):初始化微信客戶端,需要提供微信公眾號的app_id和app_secret。client.message.send_template():發(fā)送模板消息,openid是用戶的唯一標識,template_id是模板消息的 ID,data是模板消息的內(nèi)容。client.user.get():獲取用戶列表,返回一個包含用戶openid的列表。client.user.get(openid):獲取指定用戶的信息。
4. wxauto
簡介
wxauto 是一個基于 Windows 操作系統(tǒng)的微信客戶端自動化庫,通過模擬用戶操作(如鼠標點擊、鍵盤輸入等)來實現(xiàn)微信的自動化操作。
前置條件
- Windows 系統(tǒng):
wxauto只能在 Windows 上運行。 - 微信客戶端:需要安裝微信客戶端,并保持登錄狀態(tài)。
- Python 環(huán)境:需要安裝 Python 3.x。
- 屏幕分辨率:腳本可能對屏幕分辨率敏感,需要適配。
依賴項
wxauto庫。pywin32或pywinauto(用于 Windows GUI 自動化)。Pillow(用于圖像處理,如果需要截圖或圖像識別)。
安裝依賴
pip install wxauto pywin32 Pillow
注意事項
- 僅支持 Windows:無法在 macOS 或 Linux 上運行。
- 微信客戶端版本:腳本可能對微信客戶端版本敏感,需要適配。
- 穩(wěn)定性問題:由于是基于 GUI 的自動化,可能會因為窗口位置變化或網(wǎng)絡(luò)延遲導(dǎo)致腳本失敗。
完整代碼示例
import time
from wxauto import WeChat
# 初始化微信客戶端
wx = WeChat()
# 啟動微信
wx.start()
# 等待微信啟動
time.sleep(10)
# 獲取當(dāng)前微信窗口
wx.get_window()
# 查找某個好友或群聊
wx.search('好友或群聊名稱')
# 發(fā)送消息
wx.send('Hello, this is a test message!')
# 接收消息
messages = wx.get_messages()
for message in messages:
print(f"收到消息: {message}")
# 關(guān)閉微信
wx.close()
代碼注釋
WeChat():初始化微信客戶端。wx.start():啟動微信客戶端。time.sleep(10):等待微信客戶端啟動,這里等待 10 秒。wx.get_window():獲取當(dāng)前微信窗口。wx.search('好友或群聊名稱'):查找某個好友或群聊。wx.send('Hello, this is a test message!'):發(fā)送消息。wx.get_messages():獲取消息。wx.close():關(guān)閉微信客戶端。
總結(jié)
| 庫名稱 | 支持平臺 | 微信類型 | 依賴項 | 注意事項 |
|---|---|---|---|---|
itchat | 跨平臺 | 個人微信 | itchat, requests | 可能被封號,需要掃碼登錄 |
wxpy | 跨平臺 | 個人微信 | wxpy, itchat, requests | 基于 itchat,功能更豐富,但同樣有封號風(fēng)險 |
wechatpy | 跨平臺 | 公眾號/企業(yè)微信 | wechatpy, requests | 需要配置 API,僅支持公眾號和企業(yè)微信 |
wxauto | Windows | 個人微信 | wxauto, pywin32, Pillow | 僅支持 Windows,依賴微信客戶端,穩(wěn)定性較差 |
根據(jù)需求選擇合適的庫進行開發(fā)。如果需要開發(fā)個人微信機器人,itchat 和 wxpy 是不錯的選擇;如果需要開發(fā)微信公眾號或企業(yè)號應(yīng)用,wechatpy 是更好的選擇;如果需要在 Windows 上操作微信客戶端,可以使用 wxauto。
以上就是Python微信自動化庫使用詳解的詳細內(nèi)容,更多關(guān)于Python微信自動化庫的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python numpy數(shù)組的索引和切片的操作方法
NumPy 是一個 Python 包。 它代表 “Numeric Python”。它是一個由多維數(shù)組對象和用于處理數(shù)組的例程集合組成的庫。這篇文章主要介紹了python numpy 數(shù)組的索引和切片,需要的朋友可以參考下2018-10-10

