auto-account-machine/docs/tools/account-register.md
dengqichen bf55bcee27 aaaaa
2025-11-16 19:46:13 +08:00

6.0 KiB
Raw Blame History

账号注册工具 (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

这将:

  1. 生成账号数据
  2. 启动浏览器(反检测模式)
  3. 打开注册页面
  4. 自动填写 First Name, Last Name, Email
  5. 点击 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步

步骤详情:

  1. 填写基本信息First Name, Last Name, Email
  2. 设置密码(待实现)
  3. 邮箱验证(待实现)

使用示例

示例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

反检测技术

使用的技术

  1. rebrowser-puppeteer: 修补版Puppeteer修复CDP泄漏
  2. 人类行为模拟: 随机延迟、真实鼠标轨迹、自然输入节奏
  3. 指纹随机化: 随机视口、用户代理、语言设置

详细说明请查看: ANTI-DETECTION.md

测试反检测效果

访问以下网站测试是否被识别为bot

添加新网站

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);
  }
})();

注意事项

⚠️ 重要提醒

  1. 遵守服务条款: 确保使用符合网站的服务条款
  2. 频率限制: 避免短时间内大量注册
  3. 验证码: 遇到验证码时需要手动处理
  4. IP地址: 建议使用住宅代理避免数据中心IP
  5. 法律合规: 仅用于合法的测试和个人用途

故障排除

问题1: 浏览器无法启动

解决方案:

# 重新安装依赖
rm -rf node_modules package-lock.json
npm install

问题2: 元素找不到

解决方案:

  • 检查网站是否更新了页面结构
  • 增加等待时间
  • 使用浏览器开发工具查看实际的选择器

问题3: 仍然被识别为bot

解决方案:

  1. 使用住宅代理
  2. 增加操作延迟
  3. 添加更多人类行为(滚动、鼠标移动)
  4. 考虑使用半自动模式

性能优化

  • 使用 --headless 模式(但容易被检测)
  • 禁用图片加载
  • 使用更快的选择器
  • 缓存浏览器实例

相关资源