## 需求 使用playwright,typescript实现豆瓣自动登录功能。 登录完成后保存cookies,下次登录直接使用cookies自动登录。 ## 信息 登录页面:https://accounts.douban.com/passport/login?source=main 登录账号:13357108011,要求可配置 cookies保存在~/cookies.json ## 登录页html
登录出现问题,反馈并刷新
### step1: "手机号"框输入手机号(账号),账号可配置 ### step2: 点击"获取验证码"后,弹出滑块验证浮窗。需要等待人工获取登录完成。 ### step3: 获得验证码后,在“验证码”框输入"验证码" ### step4: 点击"登录豆瓣" ## 实现 ### 项目初始化 ```bash npm install npx playwright install chromium ``` ### 运行登录脚本 ```bash DOUBAN_PHONE=13357108011 npm run login ``` 如需自动尝试滑块验证,可额外开启: ```bash DOUBAN_PHONE=13357108011 \ DOUBAN_AUTO_SLIDER=1 \ npm run login ``` 可选环境变量: - `DOUBAN_SLIDER_DISTANCE`:手动指定拖动距离(像素),若自动测算失败时使用; - `DOUBAN_SLIDER_OFFSETS`:自定义距离微调列表(逗号分隔,默认根据是否自定义距离选择一组偏移进行多次尝试); - `DOUBAN_SLIDER_HANDLE_SELECTOR` / `DOUBAN_SLIDER_TRACK_SELECTOR`:覆盖默认滑块、轨道选择器; - `DOUBAN_SLIDER_BG_SELECTOR` / `DOUBAN_SLIDER_PIECE_SELECTOR`:覆盖滑块背景图、拼图块选择器; - `DOUBAN_SLIDER_TIMEOUT`:等待滑块出现的超时时间(毫秒,默认 20000)。 ### 行为说明 - 首次运行会在 `~/cookies.json` 写入登录成功后的 Cookies;后续执行会优先复用该文件自动登录。 - 如果 cookies 过期或被服务端清理,脚本会自动回退到短信验证码登录流程,并更新 cookies。 - Playwright 以非无头模式运行,便于观察流程;开启自动滑块时脚本会尝试模拟拖动,失败则仍可手动完成。控制台会提示输入短信验证码。