3.1 KiB
3.1 KiB
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 中的路径。
开发脚本
src/login.ts:主登录流程,负责 Cookie 复用、短信登录以及滑块自动化;src/slider.ts:滑块模拟工具,既提供通用函数,也能独立运行;login.md:原始业务需求与操作步骤;block.md:滑块破解思路(Python 版)与 TypeScript 脚本参考;typescript-spec.md:团队 TypeScript 编码规范与示例。
许可
本项目仅用于功能验证和学习,使用时请遵守目标网站的服务条款。