ContactsManager
通讯录管理器,提供群聊列表与标签管理功能。
方法
open(category="全部")
打开通讯录管理窗口并切换到左侧分类。
- category
str— 左侧分类名称,如"最近群聊"/"标签"/"朋友权限"
WARNING
可用分类随微信版本变化。若传入当前版本不存在的分类(例如部分 4.1.x 版本没有 "全部"), 点击会超时抛出 WxControlTimeoutError。只想打开窗口不切分类时,用 wx.open_contacts_manager()(category 默认 None)。
iter_rooms(count=None, speed=1, timeout=300)
逐条遍历最近群聊列表(通过滚动)。
- count
int | None— 最多获取数量,None获取全部 - speed
int— 滚动速度,值越大滚动越快 - timeout
float— 整个遍历的最长耗时(秒) - Yields
dict— 群聊信息
遍历结果字典结构:
python
{
"nickname": "群名称", # 群名(已剥离末尾的成员数)
"member_count": 497, # 群成员数,解析失败时为 0
"raw_text": "群名称(497)", # 控件原始 Name
}示例
python
from pywxauto import Weixin
wx = Weixin()
# 通过 Weixin 入口获取(用完自动关闭通讯录管理窗口)
for room in wx.iter_rooms(count=100):
print(f"{room['nickname']} - 成员数: {room['member_count']}")
# 或一次性取回列表
rooms = wx.get_rooms(count=20)
# 也可以直接操作 ContactsManager
cm = wx.open_contacts_manager()
for room in cm.iter_rooms(count=10):
print(room)
wx.close_contacts_manager()