# 微信群聊消息采集器 自动扫描所有微信群聊,增量采集新消息,存入 MySQL,媒体文件上传腾讯 COS。 ## 前置条件 0. 安装 wechat-cli cd wechat-cli pip install -e . 微信版本建议 4.1.6 或 4.1.8 1. **微信已登录** 且 `wechat-cli` 已初始化: ```bash sudo wechat-cli init ``` 2. **安装依赖**: ```bash pip3 install pymysql cos-python-sdk-v5 ``` ## 快速启动 ```bash 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`(可选,所有字段都有默认值): ```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 加密限制) ## 后台运行 ```bash # nohup 方式 nohup python3 collect_chats.py daemon > collector.log 2>&1 & # 查看日志 tail -f collector.log # 停止 kill $(pgrep -f "collect_chats.py daemon") ```