Python微信自动化库使用详解

 更新时间:2025年03月18日 08:43:15   作者:老胖闲聊  
Python微信自动化是指使用Python编程语言来实现对微信的自动化操作,在Python中,有几个库可以用于微信自动化操作,包括itchat、wxpy、wechatpy和wxauto,以下是对这些库的详细介绍,需要的朋友可以参考下

在Python中,有几个库可以用于微信自动化操作,包括itchat、wxpy、wechatpy和wxauto。以下是对这些库的详细介绍

1. itchat

简介

itchat 是一个基于微信网页版的 Python 库,支持个人微信账号的自动化操作,如登录、发送消息、接收消息等。

前置条件

  • 微信账号:需要一个个人微信账号。
  • Python 环境:需要安装 Python 3.x。
  • 网络连接:需要能够访问微信服务器。

依赖项

  • itchat 库。
  • requests 库(itchat 依赖的网络请求库)。

安装依赖

pip install itchat

注意事项

  • 微信限制:微信官方对非官方客户端的限制越来越严格,可能会导致账号被封禁。
  • 登录方式:需要扫码登录,且登录状态可能会过期。
  • 仅支持个人微信:不支持微信公众号或企业微信。

完整代码示例

import itchat

# 登录微信
itchat.auto_login(hotReload=True)  # hotReload=True 可以在短时间内重新登录而不需要重新扫码

# 发送消息
itchat.send("Hello, this is a test message!", toUserName='filehelper')  # 发送给文件传输助手

# 获取好友列表
friends = itchat.get_friends()
print("好友列表:")
for friend in friends:
    print(friend['NickName'])  # 打印好友的昵称

# 监听消息
@itchat.msg_register(itchat.content.TEXT)
def text_reply(msg):
    print(f"收到消息: {msg['Text']}")
    return f"自动回复: {msg['Text']}"

# 保持运行
itchat.run()

代码注释

  • itchat.auto_login(hotReload=True):登录微信,hotReload=True 表示热加载,可以在短时间内重新登录而不需要重新扫码。
  • itchat.send():发送消息,toUserName 参数指定接收者,filehelper 表示文件传输助手。
  • itchat.get_friends():获取好友列表,返回一个包含好友信息的列表。
  • @itchat.msg_register(itchat.content.TEXT):注册一个消息处理函数,当收到文本消息时调用该函数。
  • itchat.run():保持微信在线状态,监听消息。

2. wxpy

简介

wxpy 是基于 itchat 的封装库,提供了更加简洁的 API,适合快速开发微信机器人。

前置条件

  • 微信账号:需要一个个人微信账号。
  • Python 环境:需要安装 Python 3.x。
  • 网络连接:需要能够访问微信服务器。

依赖项

  • wxpy 库。
  • itchat 库(wxpy 是基于 itchat 的封装)。
  • requests 库。

安装依赖

pip install wxpy

注意事项

  • 微信限制:与 itchat 相同,存在被封号的风险。
  • 登录方式:需要扫码登录。
  • 仅支持个人微信:不支持微信公众号或企业微信。

完整代码示例

from wxpy import *

# 初始化机器人,扫码登录
bot = Bot()

# 发送消息
bot.file_helper.send("Hello, this is a test message!")  # 发送给文件传输助手

# 获取好友列表
friends = bot.friends()
print("好友列表:")
for friend in friends:
    print(friend.nick_name)  # 打印好友的昵称

# 监听消息
@bot.register()
def reply_my_friend(msg):
    print(f"收到消息: {msg.text}")
    return f"自动回复: {msg.text}"

# 保持运行
embed()

代码注释

  • Bot():初始化一个微信机器人,扫码登录。
  • bot.file_helper.send():发送消息给文件传输助手。
  • bot.friends():获取好友列表,返回一个包含好友信息的列表。
  • @bot.register():注册一个消息处理函数,当收到消息时调用该函数。
  • embed():保持微信在线状态,监听消息。

3. wechatpy

简介

wechatpy 是一个微信公众平台和微信企业号的 Python SDK,支持微信公众号和企业号的开发。

前置条件

  • 微信公众号或企业微信账号:需要已经注册并配置好微信公众号或企业微信。
  • Python 环境:需要安装 Python 3.x。
  • 网络连接:需要能够访问微信服务器。
  • API 权限:需要获取微信公众号或企业微信的 app_id 和 app_secret

依赖项

  • wechatpy 库。
  • requests 库。

安装依赖

pip install wechatpy

注意事项

  • 仅支持公众号和企业微信:不支持个人微信。
  • API 限制:需要遵守微信官方的 API 调用频率限制。
  • 配置复杂:需要配置服务器 URL、Token 等。

完整代码示例

from wechatpy import WeChatClient

# 初始化微信客户端
client = WeChatClient('your-app-id', 'your-app-secret')

# 发送模板消息
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():发送模板消息,openid 是用户的唯一标识,template_id 是模板消息的 ID,data 是模板消息的内容。
  • client.user.get():获取用户列表,返回一个包含用户 openid 的列表。
  • client.user.get(openid):获取指定用户的信息。

4. wxauto

简介

wxauto 是一个基于 Windows 操作系统的微信客户端自动化库,通过模拟用户操作(如鼠标点击、键盘输入等)来实现微信的自动化操作。

前置条件

  • Windows 系统wxauto 只能在 Windows 上运行。
  • 微信客户端:需要安装微信客户端,并保持登录状态。
  • Python 环境:需要安装 Python 3.x。
  • 屏幕分辨率:脚本可能对屏幕分辨率敏感,需要适配。

依赖项

  • wxauto 库。
  • pywin32 或 pywinauto(用于 Windows GUI 自动化)。
  • Pillow(用于图像处理,如果需要截图或图像识别)。

安装依赖

pip install wxauto pywin32 Pillow

注意事项

  • 仅支持 Windows:无法在 macOS 或 Linux 上运行。
  • 微信客户端版本:脚本可能对微信客户端版本敏感,需要适配。
  • 稳定性问题:由于是基于 GUI 的自动化,可能会因为窗口位置变化或网络延迟导致脚本失败。

完整代码示例

import time
from wxauto import WeChat

# 初始化微信客户端
wx = WeChat()

# 启动微信
wx.start()

# 等待微信启动
time.sleep(10)

# 获取当前微信窗口
wx.get_window()

# 查找某个好友或群聊
wx.search('好友或群聊名称')

# 发送消息
wx.send('Hello, this is a test message!')

# 接收消息
messages = wx.get_messages()
for message in messages:
    print(f"收到消息: {message}")

# 关闭微信
wx.close()

代码注释

  • WeChat():初始化微信客户端。
  • wx.start():启动微信客户端。
  • time.sleep(10):等待微信客户端启动,这里等待 10 秒。
  • wx.get_window():获取当前微信窗口。
  • wx.search('好友或群聊名称'):查找某个好友或群聊。
  • wx.send('Hello, this is a test message!'):发送消息。
  • wx.get_messages():获取消息。
  • wx.close():关闭微信客户端。

总结

库名称支持平台微信类型依赖项注意事项
itchat跨平台个人微信itchatrequests可能被封号,需要扫码登录
wxpy跨平台个人微信wxpyitchatrequests基于 itchat,功能更丰富,但同样有封号风险
wechatpy跨平台公众号/企业微信wechatpyrequests需要配置 API,仅支持公众号和企业微信
wxautoWindows个人微信wxautopywin32Pillow仅支持 Windows,依赖微信客户端,稳定性较差

根据需求选择合适的库进行开发。如果需要开发个人微信机器人,itchat 和 wxpy 是不错的选择;如果需要开发微信公众号或企业号应用,wechatpy 是更好的选择;如果需要在 Windows 上操作微信客户端,可以使用 wxauto

以上就是Python微信自动化库使用详解的详细内容,更多关于Python微信自动化库的资料请关注脚本之家其它相关文章!

相关文章

  • 浅谈django中的认证与登录

    浅谈django中的认证与登录

    下面小编就为大家带来一篇浅谈django中的认证与登录。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-10-10
  • pytest中文文档之编写断言

    pytest中文文档之编写断言

    这篇文章主要给大家介绍了关于pytest中文文档之编写断言的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用pytest具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • Python实现简单的文本相似度分析操作详解

    Python实现简单的文本相似度分析操作详解

    这篇文章主要介绍了Python实现简单的文本相似度分析操作,结合实例形式分析了Python基于分词API库jieba及文本相似度库gensim针对文本进行相似度分析操作的实现技巧与注意事项,需要的朋友可以参考下
    2018-06-06
  • 基于Python编写一个IP地址存活检查器

    基于Python编写一个IP地址存活检查器

    这篇文章主要为大家详细介绍了如何基于Python编写一个IP地址存活检查器,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2024-11-11
  • Python计算指定日期是今年的第几天(三种方法)

    Python计算指定日期是今年的第几天(三种方法)

    这篇文章主要介绍了Python三种方法计算指定日期是今年的第几天,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • 一文解密Python中的垃圾回收

    一文解密Python中的垃圾回收

    我们知道,python 是一种高级编程语言,它提供了自动内存管理的功能,即垃圾回收机制,所以本文就来聊聊python的垃圾回收机制是如何实现的以及具体是使用,感兴趣的可以了解下
    2023-09-09
  • python类方法中的self关键字使用

    python类方法中的self关键字使用

    这篇文章主要介绍了python类方法中的self关键字使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • Python post请求实现代码实例

    Python post请求实现代码实例

    这篇文章主要介绍了Python post请求实现代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • WxPython中控件隐藏与显示的小技巧

    WxPython中控件隐藏与显示的小技巧

    这篇文章主要介绍了WxPython中控件隐藏与显示的小技巧,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • python numpy数组的索引和切片的操作方法

    python numpy数组的索引和切片的操作方法

    NumPy 是一个 Python 包。 它代表 “Numeric Python”。它是一个由多维数组对象和用于处理数组的例程集合组成的库。这篇文章主要介绍了python numpy 数组的索引和切片,需要的朋友可以参考下
    2018-10-10

最新评论