2.0 KiB
2.0 KiB
微信群聊消息采集器
自动扫描所有微信群聊,增量采集新消息,存入 MySQL,媒体文件上传腾讯 COS。
前置条件
- 安装 wechat-cli cd wechat-cli pip install -e .
微信版本建议 4.1.6 或 4.1.8
-
微信已登录 且
wechat-cli已初始化:sudo wechat-cli init -
安装依赖:
pip3 install pymysql cos-python-sdk-v5
快速启动
cd /Users/makee/Documents/cris/workspace/wechat-cli
# 查看所有群聊
python3 collect_chats.py groups
# 一次性扫描(测试用)
python3 collect_chats.py scan
# 守护模式(持续运行)
python3 collect_chats.py daemon
# 查看采集统计
python3 collect_chats.py status
# 停止采集某个群
python3 collect_chats.py disable "广告群"
# 恢复采集
python3 collect_chats.py enable "广告群"
扫描策略
采集器使用自适应频率扫描:
| 活跃度 | 条件 | 扫描间隔 |
|---|---|---|
| HOT | 最新消息 < 5 分钟 | 60 秒 |
| WARM | 最新消息 < 1 小时 | 5 分钟 |
| COLD | 无近期消息 | 逐步退避至 30 分钟 |
- 每轮最多扫描 5 个群,群间随机延迟 0~3 秒
- 每 5 分钟重新发现新群聊
- 支持白名单/黑名单过滤(正则匹配)
自定义配置
创建 ~/.wechat-cli/collect-chats/config.json(可选,所有字段都有默认值):
{
"min_interval": 60,
"base_interval": 300,
"max_interval": 1800,
"batch_size": 5,
"messages_per_scan": 200,
"whitelist": [],
"blacklist": ["广告群", ".*测试.*"]
}
数据存储
- 消息 → MySQL
vala_test.wechat_group_message表 - 媒体文件(语音/视频/文件)→ 腾讯 COS
vala_llm/user_feedback/wechat/类型/YYYY-MM/ - 图片 → 暂不采集(微信 V2 AES 加密限制)
后台运行
# nohup 方式
nohup python3 collect_chats.py daemon > collector.log 2>&1 &
# 查看日志
tail -f collector.log
# 停止
kill $(pgrep -f "collect_chats.py daemon")