ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Skyvern 登录被 CAPTCHA 拦截怎么排查?

Skyvern 登录被 CAPTCHA 拦截怎么排查? Skyvern 登录被 CAPTCHA 拦截怎么排查【免费下载链接】skyvernAutomate browser based workflows with AI项目地址: https://gitcode.com/GitHub_Trending/sk/skyvern用 Skyvern 自动化站点登录流程时最常见的拦截方式是登录页弹出 CAPTCHA 验证运行停在验证页status为terminatedfailure_reason里提到 CAPTCHA。本文按照项目文档给出的顺序排查先确认运行到底停在哪一步再依次尝试“确认自动解题覆盖范围 → 增大max_steps→ 换代理 → 复用浏览器 profile → 人工介入”。两个前提需要先知道代理路由proxy_location仅在 Skyvern Cloud 可用自托管部署需要自己的代理基础设施自动 CAPTCHA 解题在自托管部署中不可用检测到 CAPTCHA 时 Agent 会暂停 30 秒等待人工处理。下文命令中的$RUN_ID、$SKYVERN_API_KEY为环境变量替换为你自己的运行 ID 和 API keyPython 示例中的run_id同理。第一步确认现象是 CAPTCHA 拦截而不是凭据问题先取运行状态区分是“AI 放弃”还是其他原因import os from skyvern import Skyvern client Skyvern(api_keyos.getenv(SKYVERN_API_KEY)) run await client.get_run(run_id) print(fStatus: {run.status}) print(fFailure reason: {run.failure_reason})文档中运行状态与常见原因的对应关系StatusWhat it meansLikely causecompletedRun finished, but output may be wrongPrompt interpretation issuefailedSystem errorBrowser crash, network failureterminatedAI gave upLogin blocked, CAPTCHA, page unavailabletimed_outExceededmax_stepsTask too complex, or AI got stuckcanceledManually stoppedN/A“Run Status 为terminated且failure_reason提到 CAPTCHA”就是文档定义的 CAPTCHA 拦截症状。接着查看 artifacts确认页面实际停在验证页而不是凭据填错# 最终截图页面停在哪 curl -X GET https://api.skyvern.com/v1/runs/$RUN_ID/artifacts?artifact_typescreenshot_final \ -H x-api-key: $SKYVERN_API_KEY # 录屏回放发生了什么 curl -X GET https://api.skyvern.com/v1/runs/$RUN_ID/artifacts?artifact_typerecording \ -H x-api-key: $SKYVERN_API_KEYscreenshot_final用于看最终页面状态recording用于回放开箱过程如果怀疑 AI 决策本身有问题还可以拉llm_response_parsed看 AI 当时决定做什么。第二步判断 CAPTCHA 类型是否在自动解题范围内Skyvern 用视觉模型检测并自动解题文档明确列出的覆盖范围是reCAPTCHA v2/v3、hCaptcha、Cloudflare Turnstile、FunCaptcha/ArkoseLabs、MTCaptcha以及标准文字/数字图片验证码。但文档同时说明解题不保证成功新型挑战和被限速的 IP 可能失败。另外每次运行都自动启用一组内置反检测无需配置禁用AutomationControlledBlink feature flag浏览器不会被标记为自动化通过抑制enable-automationflag 隐藏navigator.webdriverViewport 和 user agent 匹配真实消费级浏览器Locale 和时区自动匹配代理位置避免出现“日本 IP 配英文 locale”这类指纹不一致。所以如果截图里是上面清单内的验证类型先别怀疑反检测配置直接进入第三步。第三步先增大max_steps文档给出的第一优先操作是增大max_steps部分 bot 挑战尤其是 Cloudflare会在多个验证页之间循环解题器需要更多尝试次数。result await client.run_task( urlhttps://portal.example.com/login, promptLog in to the portal, max_steps15, # Default is 10 )第四步更换代理数据中心 IP 是文档指出的最常见 bot 信号很多 CAPTCHA 就是被数据中心 IP 触发的。调整思路一般站点RESIDENTIAL默认值路由到随机美国住宅 IP每次请求可能不同登录/已认证会话文档推荐RESIDENTIAL_ISP静态 IP 不会在会话中途轮换避免被站点判定为异常站点有激进 bot 检测时文档建议组合使用RESIDENTIAL_ISP、让代理位置匹配站点所在地区、在动作之间加wait块。proxy_location在创建/运行任务时传入也可以创建浏览器会话时设置会话内所有任务使用同一个代理 IP——这对登录场景重要因为会话中途换 IP 经常触发安全警告或直接登出result await client.run_task( urlhttps://portal.example.com/login, promptLog in to the portal, proxy_locationRESIDENTIAL_ISP, )一个容易踩的坑browser profile 不保存代理设置。profile 保存 cookies、localStorage 和认证状态但不保存创建它时用的代理。复用 profile 时要显式设置proxy_location与原始会话一致否则站点可能检测到 IP 不一致并让会话失效。第五步复用已通过验证的浏览器 profile如果某个域名上曾经通过过这个验证加载对应 profile 比反复解题更稳。Profile 是浏览器状态快照cookies、localStorage、session files在运行 Agent 时传入browser_profile_idSkyvern 会在第一步执行前恢复这些状态从而跳过登录/验证环节result await client.login( credential_typeskyvern, urlhttps://portal.example.com/login, credential_idcred_xyz789, browser_profile_idbp_abc123, )两个限制文档写得很明确browser_profile_id只对 agents 生效不能通过run_task的独立任务使用同一个请求里不能同时传browser_profile_id和browser_session_id。第六步人工介入兜底自动解题失败、又必须有人参与时文档给了三条路径Cloud UI 的 Take Control在Runs里点开运行点击浏览器流上方的Take Control按钮手动完成验证完成后释放控制Agent 从断点继续无需取消运行。Human Interaction 块在工作流中插入该块暂停运行等待人工完成 CAPTCHA再继续执行。自托管部署没有自动解题能力。检测到 CAPTCHA 时 Agent 暂停 30 秒你在浏览器窗口里自己解完Agent 自动继续。可选增强通过设置环境变量EXTENSIONS和EXTENSIONS_BASE_PATH加载 Chrome 扩展文档将其列为额外的隐身手段。验证结果与仍然失败的后续动作调整后重新运行用第一步的get_run确认status不再落在terminatedfailure_reason不再提到 CAPTCHA并用recording回放确认验证页被正常通过。如果 CAPTCHA 持续拦截文档给出的做法是联系 supportskyvern.com 咨询企业级 CAPTCHA 方案并附上Run ID、录屏 artifact、预期与实际行为的描述、目标站点 URL。相关文档可继续深入CAPTCHA Bot Bypass、登录失败排查、Troubleshooting Guide、Proxy Geolocation、Browser Profiles。【免费下载链接】skyvernAutomate browser based workflows with AI项目地址: https://gitcode.com/GitHub_Trending/sk/skyvern创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表