Files
douban-login/VERSION.md
2025-10-25 23:39:25 +08:00

4.1 KiB
Raw Blame History

版本信息

当前版本v1.1.0

发布日期2025-10-25

主要特性

🎯 AI 驱动的滑块验证码自动破解

  • 多策略并行检测暗区域、边缘、颜色量化、LAB 色彩空间)
  • 双滑块精准识别(左侧滑块 + 右侧缺口)
  • 简化的距离计算算法:距离 = (缺口X - 滑块X) / scaleX
  • 拟人化滑动轨迹Playwright steps 参数)
  • 自动重试机制(最多 10 次)
  • 可视化调试(红框标注输出到 output/ 目录)

📊 性能指标

  • 检测准确率~70-80%
  • 验证成功率~50%(含重试)
  • 平均尝试次数1-3 次
  • 单次检测耗时~2-3 秒

🚀 快速开始

# 启用自动滑块验证
DOUBAN_AUTO_SLIDER=1 DOUBAN_PHONE=13800138000 npm run login

# 独立测试滑块功能
npm run slider

# 批量复核历史截图
npm run slider -- --pic-dir=noflag

核心创新

"两只小鸟距离"原理

v1.1.0 最重要的突破是简化了距离计算算法:

// v1.0.0: 需要人工完成滑块
// v1.1.0: 自动计算并拖动

// 双滑块模式(推荐)
const distance = (box2.x - box1.x) / scaleX;

// 单滑块模式(兜底)
const distance = box.x / scaleX;

原理:就像计算两只小鸟嘴尖的水平距离,直接用右侧缺口的 X 坐标减去左侧滑块的 X 坐标,再除以图像缩放比例,就得到了滑块需要移动的距离。

图像缩放优化

  • 原始验证码340x191 像素
  • 检测图像800x449 像素scaleX ≈ 2.35
  • 提高小尺寸滑块的检测精度

多策略并行检测

并行运行四种算法,然后 IoU 去重:

  1. 暗区域检测:查找亮度 < 100 的暗色区域
  2. Canny 边缘检测:查找边缘密集区域
  3. 颜色量化K-means 聚类找独特色块
  4. LAB 色彩空间:感知均匀的色彩空间检测

文件结构

src/slider/               # 滑块验证模块
├── detector.ts           # 主检测器
├── detector-self-learning.ts  # 模板匹配
├── slider-controller.ts  # Playwright 集成
├── candidate-search.ts   # 多策略检测
├── geometry.ts           # IoU 计算
└── image.ts              # Sobel 边缘检测

noflag/                   # 原始验证码截图
output/                   # 红框标注结果

依赖项

  • playwright: ^1.41.1(浏览器自动化)
  • sharp: ^0.33.3(图像处理)
  • typescript: ^5.4.2

环境变量

DOUBAN_AUTO_SLIDER=1     # 启用自动滑块验证
DOUBAN_PHONE=手机号      # 登录手机号(必填)

已知限制

  1. 图像识别准确率:约 70-80%,复杂背景或低对比度图片识别率较低
  2. 验证成功率:约 50%,受反爬虫机制影响
  3. 仅供学习:请遵守网站服务条款,不要用于商业或恶意用途

相关文档

升级指南

从 v1.0.0 升级到 v1.1.0

新增依赖

npm install

新增环境变量(可选):

export DOUBAN_AUTO_SLIDER=1

新增目录

  • noflag/:原始验证码截图会自动保存到这里
  • output/:标注结果会自动保存到这里

无需更改的部分

  • DOUBAN_PHONE 环境变量用法不变
  • ~/douban-cookie.json Cookie 文件路径不变
  • npm run login 命令用法不变

新增功能

  • 设置 DOUBAN_AUTO_SLIDER=1 启用自动滑块验证
  • 使用 npm run slider 独立测试滑块功能
  • 使用 npm run slider -- --pic-dir=noflag 批量复核截图

下一步计划

  • 支持更多验证码类型(点选、文字识别)
  • 引入机器学习模型提高准确率
  • 优化轨迹模拟,降低被识别风险
  • 支持更多网站的滑块验证码

v1.1.0 - 从手动验证到 AI 自动化的飞跃 🎉