- Add wxauto package with WeChat UI automation and message handling capabilities - Implement job_extractor.py for automated job posting extraction from WeChat groups - Add job_extractor_gui.py providing graphical interface for job extraction tool - Create comprehensive documentation in Chinese covering GUI usage, multi-group support, and quick start guides - Add build configuration files (build_exe.py, build_exe.spec) for packaging as standalone executable - Include utility scripts for WeChat interaction (auto_send_msg.py, get_history.py, receive_file_transfer.py) - Add project configuration files (pyproject.toml, setup.cfg, requirements.txt) - Include test files (test_api.py, test_com_fix.py) for API and compatibility validation - Add Apache 2.0 LICENSE and comprehensive README documentation - Configure .gitignore to exclude build artifacts, logs, and temporary files
8.1 KiB
8.1 KiB
微信群岗位信息提取工具 - 多群组版本使用说明
版本更新 v1.1
新功能
- 支持多群组监听 - 可同时监听多个微信群
- UUID岗位ID - 每个岗位使用唯一的UUID标识
- 来源群组显示 - 界面显示岗位来自哪个群组
- 打包时配置API - API密钥在打包前配置,更安全
配置说明
1. 配置文件 (config.json)
{
"target_groups": [
"招聘信息群1",
"招聘信息群2",
"求职交流群"
],
"bailian_api_url": "https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation",
"api_key": "your-api-key-here",
"output_file": "jobs_data.json"
}
2. 配置步骤
方式一:使用配置工具(推荐)
# 双击运行
配置API密钥.bat
# 按提示输入API密钥
方式二:手动编辑
- 打开
config.json - 修改
target_groups数组,添加要监听的群组 - 修改
api_key为你的百炼API密钥 - 保存文件
使用流程
开发/测试阶段
-
配置API密钥
# 运行配置工具 配置API密钥.bat -
配置目标群组
- 编辑
config.json - 在
target_groups数组中添加群组名称
- 编辑
-
运行程序
# 直接运行Python版本 python job_extractor_gui.py # 或使用启动工具 启动工具.bat → 选择 [1] -
在GUI中调整群组
- 启动程序后可以在界面中修改群组列表
- 支持逗号、分号分隔
- 点击"保存群组配置"保存
打包部署阶段
-
确认配置
- 确保
config.json中的api_key已正确配置 - 确认
target_groups包含默认要监听的群组
- 确保
-
打包程序
# 使用修复脚本打包 修复并重新打包.bat # 或使用标准打包 build.bat -
分发使用
- 将
dist\微信岗位提取工具.exe分发给用户 - 用户可以在GUI中修改群组列表
- API密钥已内置,无需用户配置
- 将
界面说明
┌─────────────────────────────────────────────────────┐
│ 配置 │
│ 目标群组: [招聘群1, 招聘群2, 求职群] [保存群组配置]│
│ (多个群组用逗号分隔) │
│ API密钥: sk-46cb053d...1c81a (已配置) │
├─────────────────────────────────────────────────────┤
│ [开始任务] [停止任务] [清空列表] [导出数据] │
├─────────────────────────────────────────────────────┤
│ 状态: 运行中 (3个群组) 已提取岗位: 15 │
├─────────────────────────────────────────────────────┤
│ 岗位列表 │
│ ┌─────────────────────────────────────────────────┐│
│ │序号│来源群组│岗位│公司│地点│薪资│联系│时间 │││
│ │ 1 │招聘群1│...│...│...│...│...│... │││
│ │ 2 │招聘群2│...│...│...│...│...│... │││
│ │ 3 │求职群 │...│...│...│...│...│... │││
│ └─────────────────────────────────────────────────┘│
├─────────────────────────────────────────────────────┤
│ 运行日志 │
│ [10:30:00] 正在连接微信... │
│ [10:30:01] ✓ 已连接微信 │
│ [10:30:05] [招聘群1] 收到消息 - 发送者: 张三 │
│ [10:30:06] [招聘群1] ✓ 提取到岗位信息 │
│ [10:30:10] [招聘群2] 收到消息 - 发送者: 李四 │
└─────────────────────────────────────────────────────┘
功能特点
1. 多群组监听
- 同时监听多个微信群
- 每个群组独立处理消息
- 自动标记消息来源
2. 群组配置
支持多种分隔符:
- 逗号:
群1, 群2, 群3 - 中文逗号:
群1,群2,群3 - 分号:
群1; 群2; 群3 - 换行:每行一个群组
3. UUID标识
每个岗位都有唯一的UUID:
{
"_id": "550e8400-e29b-41d4-a716-446655440000",
"job_name": "Python开发",
"_metadata": {
"group_name": "招聘信息群1",
...
}
}
4. 来源追踪
- 界面显示岗位来源群组
- 详情中显示完整来源信息
- 日志中标记群组名称
数据格式
岗位数据结构
{
"_id": "uuid-string",
"job_name": "岗位名称",
"job_description": "岗位描述",
"job_location": "工作地点",
"salary_min": 15000,
"salary_max": 25000,
"company_name": "公司名称",
"contact_person": "联系人",
"contact_info": "联系方式",
"_metadata": {
"source": "wechat_group",
"group_name": "招聘信息群1",
"sender": "HR小王",
"extract_time": "2026-02-11 14:30:00",
"original_message": "原始消息内容..."
}
}
常见问题
Q: 如何添加新的群组?
A: 两种方式:
- 在GUI界面的群组输入框中添加,用逗号分隔
- 编辑
config.json,在target_groups数组中添加
Q: 某个群组监听失败怎么办?
A:
- 检查群组名称是否完全正确(区分大小写)
- 确保该群在微信会话列表中
- 查看日志了解具体错误信息
- 其他群组不受影响,会继续监听
Q: 如何修改API密钥?
A:
- 开发阶段:运行
配置API密钥.bat或编辑config.json - 打包后:需要重新配置并打包
Q: 可以监听多少个群组?
A: 理论上没有限制,但建议不超过10个,以保证性能
Q: 如何区分不同群组的岗位?
A:
- 界面列表中有"来源群组"列
- 双击查看详情可看到完整来源信息
- 导出的JSON数据中包含
group_name字段
Q: UUID有什么用?
A:
- 唯一标识每个岗位
- 便于数据去重
- 方便数据库存储和查询
- 支持数据同步和更新
最佳实践
1. 群组命名
建议使用清晰的群组名称:
- ✓ "北京招聘信息群"
- ✓ "Python开发求职群"
- ✗ "群聊" (太模糊)
2. 监听策略
- 优先监听活跃度高的群组
- 定期检查群组名称是否变更
- 及时移除不活跃的群组
3. 数据管理
- 定期导出数据备份
- 使用UUID进行数据去重
- 按来源群组分类整理
4. 性能优化
- 不要监听过多群组
- 定期清理历史数据
- 关闭不需要的群组监听
技术说明
多群组实现
# 为每个群组创建独立的监听
for group_name in groups:
def make_callback(gname):
return lambda msg, chat: self.on_message(msg, chat, gname)
wx.AddListenChat(
nickname=group_name,
callback=make_callback(group_name)
)
UUID生成
import uuid
# 为每个岗位生成唯一ID
job_id = str(uuid.uuid4())
job_info["_id"] = job_id
更新日志
v1.1 (2026-02-11)
- ✓ 支持多群组同时监听
- ✓ 使用UUID作为岗位ID
- ✓ 界面显示来源群组
- ✓ API密钥打包时配置
- ✓ 优化日志显示
v1.0 (2026-02-11)
- 初始版本
- 单群组监听
- 基础功能实现
下一步计划
- 群组管理界面(添加/删除/启用/禁用)
- 按群组筛选岗位
- 群组统计信息
- 数据去重功能
- 导出Excel格式
- 数据库存储支持