2025-10-24 22:20:43 +08:00
2025-10-24 22:20:23 +08:00
2025-10-24 20:23:16 +08:00
2025-10-24 20:23:16 +08:00
2025-10-24 20:23:16 +08:00
2025-10-24 22:20:23 +08:00
2025-10-24 20:23:16 +08:00
2025-10-24 20:23:16 +08:00
2025-10-24 20:23:16 +08:00
2025-10-24 20:23:16 +08:00
2025-10-24 22:20:23 +08:00
2025-10-24 22:20:23 +08:00
2025-10-24 20:23:16 +08:00
2025-10-24 22:20:23 +08:00
2025-10-24 20:23:16 +08:00
2025-10-24 20:23:16 +08:00

douban-crawler

使用 Playwright + TypeScript 实现的豆瓣登录与辅助脚本,主要功能包括:

  • 通过短信验证码完成豆瓣登录,并持久化 Cookies
  • 自动尝试滑块验证,降低人工干预;
  • 可单独运行的滑块模拟脚本,便于在其它场景复用。

快速开始

npm install
npx playwright install chromium

首次运行登录脚本需要提供手机号:

DOUBAN_PHONE=13357108011 npm run login

若需启用滑块自动化,可增加 DOUBAN_AUTO_SLIDER=1,更多环境变量见下文。

脚本说明

命令 说明
npm run login 豆瓣短信登录,复用 ~/cookies.json
npm run slider 独立测试滑块验证功能

配置项

登录流程支持以下环境变量:

变量名 说明 默认值
DOUBAN_PHONE 登录手机号(必填) -
DOUBAN_AUTO_SLIDER 是否尝试自动完成滑块验证(1 表示开启) 0
DOUBAN_SLIDER_DISTANCE 自定义滑块拖动距离(像素);缺省时脚本根据轨道宽度推测 自动推测或 200px
DOUBAN_SLIDER_OFFSETS 距离微调列表(逗号分隔,逐个尝试以校正识别误差) 自动选择
DOUBAN_SLIDER_HANDLE_SELECTOR 覆盖默认滑块按钮选择器 内置候选
DOUBAN_SLIDER_TRACK_SELECTOR 覆盖默认滑块轨道选择器 内置候选
DOUBAN_SLIDER_BG_SELECTOR 覆盖滑块背景图选择器 内置候选
DOUBAN_SLIDER_PIECE_SELECTOR 覆盖滑块拼图块选择器 内置候选
DOUBAN_SLIDER_TIMEOUT 等待滑块组件出现的超时(毫秒) 20000

Cookies 将默认保存到用户主目录下的 ~/cookies.json,可根据需要修改 src/login.ts 中的路径。

滑块验证自动化

本项目集成了滑块验证码自动破解功能,参考了 crack-slide-captcha 项目。

核心特性

  • 🔍 智能识别:通过图像处理自动计算滑动距离
  • 🎭 模拟真人:先快后慢的速度曲线、轨迹抖动、随机反应时间
  • 🔄 多次重试:支持偏移修正,提高成功率
  • ⚙️ 高度可配:支持自定义选择器、距离、偏移等参数

快速使用

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

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

详细说明请查看 SLIDER.md

开发脚本

  • src/login.ts:主登录流程,负责 Cookie 复用、短信登录以及滑块自动化;
  • src/slider.ts:滑块验证自动化工具,支持图像识别和轨迹模拟;
  • SLIDER.md:滑块验证详细文档,包含原理、配置和故障排查;
  • login.md:原始业务需求与操作步骤;
  • block.md滑块破解思路Python 版)与 TypeScript 脚本参考;
  • typescript-spec.md:团队 TypeScript 编码规范与示例。

许可

本项目仅用于功能验证和学习,使用时请遵守目标网站的服务条款。

Description
Playwright + TypeScript 脚本,用于完成豆瓣短信验证码登录,并将登录态持久化到本地 Cookie 文件。已集成 AI 驱动的滑块验证码求解与 macOS 短信自动读取功能。
https://biboer.cn
Readme 11 MiB
v1.2.0 Latest
2025-10-26 10:44:35 +08:00
Languages
TypeScript 91.7%
Shell 8.3%