# 招聘数据分析可视化系统 **Repository Path**: shanewa/BossRecruitmentAnalysis ## Basic Information - **Project Name**: 招聘数据分析可视化系统 - **Description**: Boss直聘招聘数据爬取、存储、分析与可视化系统。该系统通过爬虫获取Boss直聘平台的招聘信息,存储到MySQL数据库,并提供GUI界面和Web界面进行数据查看、分析和导出,同时集成了ai大模型。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2026-02-04 - **Last Updated**: 2026-02-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # BossRecruitmentAnalysis - Boss直聘招聘数据分析系统 ## 项目概述 BossRecruitmentAnalysis是一个功能完整的Boss直聘招聘数据爬取、存储、分析与可视化系统。该系统通过爬虫获取Boss直聘平台的招聘信息,存储到MySQL数据库,并提供GUI界面和Web界面进行数据查看、分析和导出。 ### 主要功能 - **数据爬取**:支持多城市、多关键词的招聘信息爬取,提供DrissionPage和Selenium两种爬取模式 - **数据存储**:将爬取的数据规范化存储到MySQL数据库 - **数据管理**:提供数据清洗、去重、删除无效数据等功能 - **数据分析**:支持城市分布、薪资分布、关键词分布等多维度数据分析 - **数据可视化**:通过图表直观展示分析结果 - **Web服务**:提供RESTful API和Web界面,支持数据查询、筛选和导出 - **AI助手**:集成讯飞星火API,提供智能数据分析功能 ## 系统架构 ``` ├── 爬虫层 │ ├── visual_spider.py # 可视化爬虫,支持GUI界面 │ ├── crawl_integration.py # 爬虫任务集成模块 │ └── crawler/ # 爬虫相关组件 ├── 数据层 │ ├── init_database.py # 数据库初始化 │ ├── data_viewer.py # 数据查看与分析组件 │ └── MySQL数据库 # 数据存储 ├── 应用层 │ ├── web_app.py # Flask Web应用 │ ├── web_app_with_auth.py # 带认证的Web应用 │ └── ai_assistant.py # AI助手模块 └── 配置层 └── config.py # 系统配置 ``` ## 技术栈 - **后端语言**:Python 3 - **爬虫技术**:Selenium、DrissionPage - **Web框架**:Flask - **数据库**:MySQL - **GUI框架**:Tkinter - **数据可视化**:Matplotlib、Seaborn - **AI接口**:讯飞星火API - **其他库**:BeautifulSoup4、pandas、jieba等 ## 页面展示 ![](/images/1.png) ![](/images/2.png) ![](/images/3.png) ![](/images/4.png) ![](/images/5.png) ![](/images/6.png) ![](/images/7.png) ![](/images/8.png) ![](/images/9.png) ![](/images/10.png) ![](/images/11.png) ## 安装与配置 ### 1. 环境要求 - Python 3.8+ - MySQL 5.7+ - Chrome浏览器 - ChromeDriver(与Chrome版本匹配) ### 2. 安装依赖 ```bash pip install -r requirements.txt ``` 主要依赖包: - selenium - drissionpage - flask - flask-cors - pymysql - pandas - matplotlib - seaborn - jieba ### 3. 数据库配置 1. 确保MySQL服务已启动 2. 修改配置文件中的数据库信息: ```python # config.py 中的数据库配置 DB_CONFIG = { 'host': '127.0.0.1', 'port': 3306, 'user': 'root', 'password': '123456', # 修改为您的数据库密码 'database': 'recruitment_analysis', 'charset': 'utf8' } ``` 3. 初始化数据库: ```bash python init_database.py ``` ### 4. 讯飞星火API配置(可选) 如需使用AI助手功能,请在`ai_assistant.py`中配置您的API密钥: ```python # 在使用时设置 app_id = "您的app_id" api_secret = "您的api_secret" api_key = "您的api_key" ``` ## 使用方法 ### 方法一:GUI界面 运行可视化爬虫: ```bash python visual_spider.py ``` GUI界面功能说明: - 选择爬取模式:DrissionPage(稳定需登录)或Selenium(免登录) - 输入职位关键词和目标城市 - 设置爬取页数 - 点击"开始爬取"按钮启动爬虫 - 可通过"查看数据"和"数据分析"按钮查看爬取结果 ### 方法二:Web界面 1. 启动Web服务: ```bash python web_app.py ``` 2. 访问Web界面: 在浏览器中输入 `http://localhost:5000` 访问系统 Web界面功能: - 数据列表展示,支持分页 - 多条件筛选(关键词、城市、薪资范围) - 数据导出为CSV - 数据统计和可视化展示 ### 方法三:命令行爬取 ```bash python visual_spider.py --keyword "Java" --city "北京" --pages 10 --headless ``` 命令行参数: - `--keyword`: 搜索关键词 - `--city`: 目标城市 - `--pages`: 爬取页数 - `--user_id`: 用户ID(默认为1) - `--task_id`: 任务ID - `--headless`: 无头模式运行 ## 核心功能详解 ### 1. 数据爬取 系统提供两种爬取模式: - **DrissionPage模式**:需要手动登录Boss直聘,更稳定,反爬能力强 - **Selenium模式**:免登录,但可能会被平台识别为爬虫 爬取的主要字段包括: - 职位名称 - 薪资范围 - 工作地点 - 公司名称 - 公司标签 - 技能要求 - 发布时间 ### 2. 数据清洗 数据清洗功能可以: - 删除重复数据 - 删除空值数据 - 删除无效数据 ### 3. 数据分析 系统提供多种数据分析维度: - 城市分布统计 - 关键词分布统计 - 薪资范围分布 - 技能需求统计 ### 4. 数据导出 支持将查询结果导出为CSV格式,方便进一步分析和处理。 ## API接口说明 ### 获取职位数据 ``` GET /api/jobs ``` 参数: - `page`: 页码(默认1) - `per_page`: 每页数量(默认20) - `keyword`: 搜索关键词 - `city`: 城市 - `salary_range`: 薪资范围(如"10-20") ### 获取统计信息 ``` GET /api/stats ``` 返回总体统计和分布数据 ### 导出数据 ``` GET /api/export ``` 参数与`/api/jobs`相同,返回CSV文件 ### 获取城市列表 ``` GET /api/cities ``` ### 获取关键词列表 ``` GET /api/keywords ``` ## 二次开发指南 ### 1. 扩展爬虫功能 要添加新的爬取字段或支持其他招聘网站: 1. 修改`visual_spider.py`中的爬虫类,添加新的字段提取逻辑 2. 在数据库中添加相应字段 3. 更新数据处理和可视化相关代码 ### 2. 添加新的分析维度 1. 在`data_viewer.py`中添加新的分析方法 2. 在Web应用的`/api/stats`接口中添加新的统计逻辑 3. 在前端页面添加新的可视化展示 ### 3. 优化Web界面 1. 修改`templates`目录下的HTML文件 2. 在`static`目录添加自定义CSS和JavaScript 3. 在`web_app.py`中添加新的API接口 ### 4. 集成其他AI服务 1. 修改`ai_assistant.py`,添加新的AI服务客户端 2. 实现相应的接口方法 3. 更新调用逻辑 ## 注意事项 1. **爬取频率**:为避免被反爬,系统设置了随机延迟,请不要频繁爬取大量数据 2. **数据更新**:招聘数据会定期更新,建议定期重新爬取 3. **API使用**:使用讯飞星火API时请注意配额限制 4. **反爬策略**:如需爬取大量数据,建议使用代理IP和更复杂的反爬策略 ## 许可证 本项目仅供学习和研究使用,请勿用于商业用途。使用本项目爬取数据时,请遵守相关网站的robots协议和法律法规。 ## 联系方式 如有问题或建议,请联系项目维护者。