# 账号注册工具 (Account Register) 自动化账号注册工具,支持步骤化流程和反检测技术。 ## 功能特性 - ✅ 步骤化注册流程(每个网站独立定义) - ✅ 反检测技术(rebrowser-puppeteer) - ✅ 人类行为模拟 - ✅ 自动数据生成(姓名、邮箱、密码等) - ✅ 支持部分步骤执行 - ✅ 干运行模式 ## 快速开始 ### 1. 生成账号数据(干运行) ```bash 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. 执行第一步注册 ```bash node src/cli.js register -s windsurf --from-step 1 --to-step 1 ``` 这将: 1. 生成账号数据 2. 启动浏览器(反检测模式) 3. 打开注册页面 4. 自动填写 First Name, Last Name, Email 5. 点击 Continue 按钮 ### 3. 执行完整注册流程 ```bash 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步) **步骤详情**: 1. ✅ 填写基本信息(First Name, Last Name, Email) 2. ⏳ 设置密码(待实现) 3. ⏳ 邮箱验证(待实现) ## 使用示例 ### 示例1:测试数据生成 ```bash # 生成通用账号数据 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:自动化注册 ```bash # 执行第一步 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:分步骤执行 ```bash # 只执行第一步 node src/cli.js register -s windsurf --to-step 1 # 从第二步继续(需要先完成第一步) node src/cli.js register -s windsurf --from-step 2 ``` ## 反检测技术 ### 使用的技术 1. **rebrowser-puppeteer**: 修补版Puppeteer,修复CDP泄漏 2. **人类行为模拟**: 随机延迟、真实鼠标轨迹、自然输入节奏 3. **指纹随机化**: 随机视口、用户代理、语言设置 详细说明请查看: [ANTI-DETECTION.md](../account-register/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`: ```javascript 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. 使用新脚本 ```bash node src/cli.js register -s github ``` 工具会自动发现并加载新脚本。 ## 编程使用 ```javascript 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); } })(); ``` ## 注意事项 ⚠️ **重要提醒**: 1. **遵守服务条款**: 确保使用符合网站的服务条款 2. **频率限制**: 避免短时间内大量注册 3. **验证码**: 遇到验证码时需要手动处理 4. **IP地址**: 建议使用住宅代理,避免数据中心IP 5. **法律合规**: 仅用于合法的测试和个人用途 ## 故障排除 ### 问题1: 浏览器无法启动 **解决方案**: ```bash # 重新安装依赖 rm -rf node_modules package-lock.json npm install ``` ### 问题2: 元素找不到 **解决方案**: - 检查网站是否更新了页面结构 - 增加等待时间 - 使用浏览器开发工具查看实际的选择器 ### 问题3: 仍然被识别为bot **解决方案**: 1. 使用住宅代理 2. 增加操作延迟 3. 添加更多人类行为(滚动、鼠标移动) 4. 考虑使用半自动模式 ## 性能优化 - 使用 `--headless` 模式(但容易被检测) - 禁用图片加载 - 使用更快的选择器 - 缓存浏览器实例 ## 相关资源 - [反检测技术文档](../account-register/ANTI-DETECTION.md) - [rebrowser-patches](https://github.com/rebrowser/rebrowser-patches) - [人类行为模拟最佳实践](https://github.com/berstend/puppeteer-extra/tree/master/packages/puppeteer-extra-plugin-stealth)