# 51job **Repository Path**: asddadsfxfs/51job ## Basic Information - **Project Name**: 51job - **Description**: 前程无忧51job.com网站爬取项目 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-06-25 - **Last Updated**: 2026-07-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 51job招聘数据爬虫 一个基于Python的51job招聘网站数据爬虫项目,支持职位搜索、数据解析、存储和导出功能。 ## 功能特性 - ✅ **职位搜索**:支持多关键词、多城市搜索 - ✅ **数据解析**:自动解析岗位名称、公司名称、薪资、地点、经验、学历等字段 - ✅ **数据存储**:支持MySQL和SQLite双数据库模式 - ✅ **数据导出**:支持CSV和JSON格式导出 - ✅ **定时任务**:支持定时自动爬取 - ✅ **示例数据**:提供示例数据用于测试功能 ## 技术栈 - Python 3.8+ - requests:HTTP请求 - BeautifulSoup4:HTML解析 - pymysql:MySQL数据库驱动 - SQLite:轻量级数据库(备选) - selenium:浏览器自动化(可选) - schedule:定时任务调度 ## 项目结构 ``` 51job_spider/ ├── main.py # 主程序入口 ├── spider.py # 爬虫核心代码(requests模式) ├── spider_edge.py # Edge浏览器爬虫(selenium模式) ├── db_helper.py # 数据库操作类 ├── data_cleaner.py # 数据清洗模块 ├── scheduler.py # 定时任务模块 ├── config.py # 配置文件 ├── requirements.txt # 依赖包列表 ├── start.bat # Windows启动脚本 └── README.md # 项目说明文档 ``` ## 快速开始 ### 1. 安装依赖 ```bash pip install -r requirements.txt ``` ### 2. 初始化数据库 ```bash python main.py --action init ``` ### 3. 爬取数据 ```bash # 基础模式 python main.py --action crawl --keywords Python --city 北京 --pages 1 # 多个关键词 python main.py --action crawl --keywords Python Java 前端 --city 上海 --pages 2 ``` ### 4. 查询数据 ```bash python main.py --action query --days 30 --limit 20 ``` ### 5. 导出数据 ```bash python main.py --action export --limit 100 ``` ### 6. 启动定时任务 ```bash python scheduler.py ``` ## 命令参数说明 | 参数 | 说明 | 默认值 | |------|------|--------| | --action | 操作类型:crawl/query/export/init | crawl | | --keywords | 搜索关键词(支持多个) | Python | | --city | 搜索城市 | 北京 | | --pages | 爬取页数 | 1 | | --days | 查询天数 | 30 | | --limit | 返回条数限制 | 20 | ## 支持的城市 全国、北京、上海、广州、深圳、杭州、南京、成都、武汉、西安、天津、重庆、苏州、郑州、长沙、青岛、合肥、厦门、济南、大连、东莞、佛山 ## 爬取字段 | 字段 | 说明 | |------|------| | 岗位名称 | 职位名称 | | 公司名称 | 招聘公司名称 | | 薪资范围 | 月薪范围(X-YK格式) | | 工作地点 | 城市级别 | | 经验要求 | 如"3-5年" | | 学历要求 | 如"本科" | | 详情URL | 职位详情链接(用于去重和溯源) | | 发布时间 | 发布日期 | ## 数据库配置 数据库配置在 `config.py` 中: ```python DB_CONFIG = { 'host': 'localhost', 'port': 3306, 'user': 'root', 'password': 'root', 'database': 'spider_db', 'charset': 'utf8mb4' } ``` **注意**:如果MySQL服务未启动,程序会自动降级使用SQLite本地数据库,无需额外配置。 ## 反爬说明 51job网站有较强的反爬机制,普通HTTP请求可能无法获取数据。建议: 1. 使用浏览器模式(需要安装selenium): ```bash python main.py --action crawl --keywords Python --city 北京 --spider edge ``` 2. 添加适当的请求延迟(默认1.5-3秒) 3. 使用代理IP池(高级功能) ## 开源到Gitee ### 步骤1:初始化Git仓库 ```bash cd 51job_spider git init git add . git commit -m "Initial commit: 51job招聘数据爬虫项目" ``` ### 步骤2:添加远程仓库 ```bash git remote add origin https://gitee.com/asddadsfxfs/51job.git ``` ### 步骤3:推送到Gitee ```bash git branch -M main git push -u origin main ``` ### 步骤4:配置Gitee信息(首次推送) 首次推送时会提示输入Gitee用户名和密码: - 用户名:asddadsfxfs - 密码:使用Gitee账号密码或生成的个人令牌 ## License MIT License ## 免责声明 本项目仅供学习和研究使用。请遵守目标网站的robots.txt协议和相关法律法规,合理控制爬取频率,避免对目标网站造成压力。