一个自动化爬取、筛选和推送2026届相关校招/实习信息的工具,支持数据本地存储与邮件通知功能。
本工具通过Selenium自动化爬取指定招聘网站的校招和实习岗位信息,定向筛选2026届相关职位,将数据保存为JSON和Excel格式(新增职位自动高亮),并通过邮件推送最新职位动态,帮助2026届毕业生及时获取目标岗位信息。
本项目可直接克隆后挂载到GitHub上每天自动运行,去本地化,无需额外的服务器。
- 定向爬取:支持校招和实习两个渠道的职位信息爬取,可配置爬取页码范围
- 智能筛选:自动过滤非2026届相关职位,仅保留目标群体岗位
- 数据管理:
- 本地JSON存储历史数据,自动去重
- 生成Excel报表,新增职位高亮标记
- 定期清理过期职位和无效数据
- 通知机制:通过邮件推送新增职位信息,支持多接收人
- 反爬策略:
- 随机User-Agent与页面等待时间
- 每次会话爬取页数限制
- 浏览器自动化特征隐藏
- 模拟人类滚动与点击行为
- Python 3.8+
- 依赖库:
pip install selenium pandas fake-useragent openpyxl
- 浏览器驱动:
- Chrome/Chromium 浏览器
- 对应版本的 ChromeDriver(需配置到环境变量或同目录)
-
克隆仓库:
git clone https://github.com/yourusername/recruitment-spider.git cd recruitment-spider -
安装依赖:
pip install -r requirements.txt
-
环境变量配置(必填,用于邮件功能):
EMAIL_USER:发送邮箱账号(如QQ邮箱)EMAIL_PWD:发送邮箱授权码(非登录密码,需在邮箱安全设置中获取)RECEIVER_EMAILS:接收邮箱列表(英文分号分隔,如a@xxx.com;b@xxx.com)
# 临时配置示例(Linux/Mac) export EMAIL_USER="your-email@qq.com" export EMAIL_PWD="your-smtp-auth-code" export RECEIVER_EMAILS="target1@xxx.com;target2@xxx.com" # Windows 命令提示符 set EMAIL_USER=your-email@qq.com set EMAIL_PWD=your-smtp-auth-code set RECEIVER_EMAILS=target1@xxx.com;target2@xxx.com
-
参数自定义(可选,修改代码中常量):
START_PAGE/END_PAGE:爬取页码范围(默认1-6页)MAX_PAGES_PER_SESSION:每次会话最大爬取页数(默认2页,作用反爬)SITE_URL/SITE_URL_INTERNSHIP:目标网站URL(暂时不可替换其他网站)
直接运行主程序:
python recruitment_spider.py程序执行流程:
- 初始化浏览器环境
- 分页爬取校招/实习信息(每次会话2页)
- 筛选2026届相关职位并去重
- 保存数据到JSON和Excel
- 发送包含新增职位的邮件通知
-
数据文件:
campus_jobs.json:校招历史数据(JSON格式)intern_jobs.json:实习历史数据(JSON格式)campus_jobs.xlsx:校招Excel报表(新增职位黄色高亮)intern_jobs.xlsx:实习Excel报表(新增职位黄色高亮)
-
邮件内容:
- 就业建议:
- 定向爬取自媒体关于就业的帖子和评论,进行文本分析量化。
- 自媒体信息迭代速度更快,但是个例也比较多,需要区分。
- 目前已经完成自媒体爬虫的实现,测试文本分析量化中。
-
网站合规性:
- 请遵守目标网站的
robots.txt协议和使用条款 - 合理设置爬取频率,避免给服务器造成压力
- 请遵守目标网站的
-
反爬风险:
- 频繁爬取可能导致IP被临时封禁,建议控制每日运行次数
- 若网站结构更新(如HTML标签变化),需同步修改代码中的CSS选择器
-
邮箱配置:
- QQ邮箱需在「设置→账户」中开启「SMTP服务」并获取授权码
- 其他邮箱(如163)需修改代码中
smtp_server和smtp_port(例如163邮箱为smtp.163.com:465)
- 基于Selenium实现自动化爬取
- 感谢开源社区提供的各类依赖库支持
如有问题或建议,欢迎提交Issue或PR!
