6.0 KiB
6.0 KiB
账号注册工具 (Account Register)
自动化账号注册工具,支持步骤化流程和反检测技术。
功能特性
- ✅ 步骤化注册流程(每个网站独立定义)
- ✅ 反检测技术(rebrowser-puppeteer)
- ✅ 人类行为模拟
- ✅ 自动数据生成(姓名、邮箱、密码等)
- ✅ 支持部分步骤执行
- ✅ 干运行模式
快速开始
1. 生成账号数据(干运行)
node src/cli.js register -s windsurf --dry-run
输出示例:
firstName: John
lastName: Smith
fullName: John Smith
email: user_17001234_abc123@gmail.com
username: quickwolf456
password: Xy9#mK2$pL5@
timestamp: 2024-11-16T11:30:00.000Z
2. 执行第一步注册
node src/cli.js register -s windsurf --from-step 1 --to-step 1
这将:
- 生成账号数据
- 启动浏览器(反检测模式)
- 打开注册页面
- 自动填写 First Name, Last Name, Email
- 点击 Continue 按钮
3. 执行完整注册流程
node src/cli.js register -s windsurf
执行所有已实现的步骤(目前只有Step 1)。
命令行参数
| 参数 | 简写 | 说明 | 默认值 |
|---|---|---|---|
| --site | -s | 网站名称 | 必需 |
| --dry-run | 无 | 只生成数据,不执行 | false |
| --from-step | 无 | 从第几步开始 | 1 |
| --to-step | 无 | 执行到第几步 | 全部 |
| --keep-browser-open | 无 | 保持浏览器打开 | false |
| --format | -f | 输出格式 | simple |
| --output | -o | 保存到文件 | 无 |
支持的网站
Windsurf (windsurf)
注册URL: https://windsurf.com/account/register
步骤总数: 3步(目前实现1步)
步骤详情:
- ✅ 填写基本信息(First Name, Last Name, Email)
- ⏳ 设置密码(待实现)
- ⏳ 邮箱验证(待实现)
使用示例
示例1:测试数据生成
# 生成通用账号数据
node src/cli.js register generate
# 生成Windsurf专用数据
node src/cli.js register -s windsurf --dry-run
# JSON格式输出
node src/cli.js register generate -f json
示例2:自动化注册
# 执行第一步
node src/cli.js register -s windsurf --from-step 1 --to-step 1
# 保持浏览器打开(手动完成后续步骤)
node src/cli.js register -s windsurf --keep-browser-open
# 保存账号数据到文件
node src/cli.js register -s windsurf -o account.json
示例3:分步骤执行
# 只执行第一步
node src/cli.js register -s windsurf --to-step 1
# 从第二步继续(需要先完成第一步)
node src/cli.js register -s windsurf --from-step 2
反检测技术
使用的技术
- rebrowser-puppeteer: 修补版Puppeteer,修复CDP泄漏
- 人类行为模拟: 随机延迟、真实鼠标轨迹、自然输入节奏
- 指纹随机化: 随机视口、用户代理、语言设置
详细说明请查看: ANTI-DETECTION.md
测试反检测效果
访问以下网站测试是否被识别为bot:
- https://bot-detector.rebrowser.net/
- https://arh.antoinevastel.com/bots/areyouheadless
- https://abrahamjuliot.github.io/creepjs
添加新网站
1. 创建网站脚本
在 src/tools/account-register/sites/ 目录创建新文件,例如 github.js:
const AccountDataGenerator = require('../generator');
const HumanBehavior = require('../utils/human-behavior');
const logger = require('../../../shared/logger');
class GitHubRegister {
constructor() {
this.siteName = 'GitHub';
this.siteUrl = 'https://github.com/signup';
this.dataGen = new AccountDataGenerator();
this.human = new HumanBehavior();
this.currentStep = 0;
// 定义步骤
this.steps = [
{ id: 1, name: '填写邮箱', method: 'step1_fillEmail' },
{ id: 2, name: '设置密码', method: 'step2_setPassword' },
{ id: 3, name: '填写用户名', method: 'step3_fillUsername' },
// 更多步骤...
];
}
generateData(options = {}) {
return this.dataGen.generateAccount(options);
}
async initBrowser() {
// 使用Windsurf的实现
}
async step1_fillEmail() {
// 实现第一步
}
async register(options = {}) {
// 实现主流程
}
}
module.exports = GitHubRegister;
2. 使用新脚本
node src/cli.js register -s github
工具会自动发现并加载新脚本。
编程使用
const WindsurfRegister = require('./src/tools/account-register/sites/windsurf');
(async () => {
const register = new WindsurfRegister();
try {
const result = await register.register({
fromStep: 1,
toStep: 1,
keepBrowserOpen: true
});
console.log('注册结果:', result);
} catch (error) {
console.error('注册失败:', error);
}
})();
注意事项
⚠️ 重要提醒:
- 遵守服务条款: 确保使用符合网站的服务条款
- 频率限制: 避免短时间内大量注册
- 验证码: 遇到验证码时需要手动处理
- IP地址: 建议使用住宅代理,避免数据中心IP
- 法律合规: 仅用于合法的测试和个人用途
故障排除
问题1: 浏览器无法启动
解决方案:
# 重新安装依赖
rm -rf node_modules package-lock.json
npm install
问题2: 元素找不到
解决方案:
- 检查网站是否更新了页面结构
- 增加等待时间
- 使用浏览器开发工具查看实际的选择器
问题3: 仍然被识别为bot
解决方案:
- 使用住宅代理
- 增加操作延迟
- 添加更多人类行为(滚动、鼠标移动)
- 考虑使用半自动模式
性能优化
- 使用
--headless模式(但容易被检测) - 禁用图片加载
- 使用更快的选择器
- 缓存浏览器实例