Node.js + Playwright 自动化脚本,用于在 Boss 直聘网页端复用登录态、搜索远程岗位,并批量发送招呼语。
支持 macOS / Windows / Linux 全平台运行。
- Node.js 20+(推荐 22 LTS)
- npm 10+(随 Node.js 一起安装)
- Git
git clone https://github.com/user/boss-autogreet.git
cd boss-autogreet
npm install# 1. 安装 Node.js(如未安装)
# 从 https://nodejs.org/ 下载 LTS 版本,安装时勾选"Add to PATH"
# 2. 打开 PowerShell 或 CMD
git clone https://github.com/user/boss-autogreet.git
cd boss-autogreet
npm install
# 3. 首次运行会自动下载 Chromium(约 150MB),请耐心等待下载项目后,双击 install.bat 即可完成安装。
# Step 1: 扫码登录(弹出浏览器窗口,用手机扫码)
node src/index.js login
# Step 2: 预览搜索结果(不打招呼)
node src/index.js search
# Step 3: 搜索 + 自动打招呼
node src/index.js run
# 查看打招呼历史
node src/index.js historyWindows 用户也可以使用 npm scripts:
npm run login
npm run search
npm run run
npm run history| 功能 | 说明 |
|---|---|
| 🔐 扫码登录 | Cookie 持久化到 userdata/,下次自动跳过登录 |
| 🔍 全国远程搜索 | 默认搜索"远程",支持自定义关键词和城市 |
| 👋 自动打招呼 | 逐个点击"立即沟通"并发送自定义招呼语 |
| 🛡 反检测 | playwright-extra + stealth 插件隐藏自动化特征 |
| 🐢 人类模拟 | 随机延迟 5-15 秒、鼠标轨迹模拟、批次休息 |
| 🚫 每日上限检测 | 检测到"今日沟通已达上限"自动停止 |
| 📝 去重机制 | history.json 记录已打招呼岗位,不重复沟通 |
| 📸 异常截图 | 遇到验证码/风控时自动截图保存 |
编辑 config.json 自定义行为:
{
"searchQuery": "远程",
"city": "100010000",
"greeting": "您好,我对这个远程岗位很感兴趣,期待与您交流!",
"maxPages": 10,
"maxGreetPerRun": 50,
"delayBetweenGreets": [5000, 15000],
"delayAfterBatch": [60000, 180000],
"batchSize": 15,
"headless": false,
"screenshotOnError": true
}| 参数 | 说明 | 默认值 |
|---|---|---|
searchQuery |
搜索关键词 | "远程" |
city |
城市代码(100010000=全国) | "100010000" |
greeting |
打招呼时发送的消息 | 见上 |
maxPages |
最大翻页数 | 10 |
maxGreetPerRun |
单次运行打招呼上限 | 50 |
delayBetweenGreets |
每次打招呼间隔 [min, max] ms | [5000, 15000] |
batchSize |
每批多少个后长休息 | 15 |
delayAfterBatch |
批次休息时间 [min, max] ms | [60000, 180000] |
可选扩展字段:jobType(职位类型过滤)、salaryRange(薪资过滤)、experience(经验过滤)
boss-autogreet/
├── config.json # 运行配置
├── install.bat # Windows 一键安装脚本
├── run.bat # Windows 一键运行脚本
├── src/
│ ├── index.js # CLI 入口
│ ├── browser.js # 浏览器会话管理
│ ├── login.js # 扫码登录
│ ├── search.js # 搜索远程岗位
│ ├── greet.js # 自动打招呼
│ ├── filter.js # 岗位过滤规则
│ └── utils.js # 工具函数 + 选择器定义
├── data/ # 运行时数据(gitignore)
│ ├── history.json # 打招呼历史记录
│ ├── jobs.json # 最近搜索结果快照
│ └── screenshots/ # 异常截图
└── userdata/ # 浏览器 Cookie 数据(gitignore)
- Boss 直聘有日沟通限额(通常 100 次/天),超限会被提示
- 短时间大量操作可能触发风控,建议保持默认延迟设置
- 验证码:遇到滑块验证时脚本会暂停并截图,需手动处理
- 选择器可能过期:Boss 改版后需更新
src/utils.js中的SELECTORS - 仅供学习交流,请遵守 Boss 直聘使用条款
确保 Node.js 已正确安装并添加到 PATH:
node --version # 应显示 v20+ 或 v22+
npm --version # 应显示 10+手动安装:
npx playwright install chromium如果网络受限,可设置代理:
set HTTPS_PROXY=http://127.0.0.1:7890
npx playwright install chromium重新运行 node src/index.js login 扫码即可,Cookie 会覆盖更新。
编辑 config.json 中的 city 字段。常用城市代码:
100010000— 全国101010100— 北京101020100— 上海101280100— 广州101280600— 深圳101210100— 杭州
ISC