如何解决验证码
使用 Browser API 浏览页面时,我们集成的验证码解算器默认会自动解算所有验证码。您可以使用以下自定义 CDP 函数在代码中监控此自动解算过程。如果您想通过控制面板完全禁用验证码解算器,请参阅禁用验证码解算器功能。
验证码解算后,如有表单需要提交,则默认情况下会提交。
验证码解算器 - 自动解算
Captcha.solve
Captcha.solve
使用此命令返回验证码已解算、解算失败或未检测到之后的状态。示例
如果验证码解算失败,请尝试重试。如果问题持续存在,请提交支持请求并详细说明您遇到的具体问题。
用于验证码状态的自定义 CDP 命令
用于验证码状态的自定义 CDP 命令
使用以下命令可以精确定位验证码解算流程中更具体的阶段:
示例
- 异步
- 同步
以下代码建立 CDP 会话、监听验证码事件并处理超时:
验证码解算器 - 手动控制
如果您想手动配置或完全禁用我们默认的验证码解算器,改为手动调用解算器或自行解算,请参阅以下 CDP 命令与功能。Captcha.setAutoSolve
Captcha.setAutoSolve
此命令用于控制验证码的自动解算。您可以禁用自动解算,或为不同的验证码类型配置算法并手动触发:在会话内完全禁用自动解算器的 CDP 命令示例:
仅对特定验证码类型禁用自动解算器 - 示例
仅对特定验证码类型禁用自动解算器 - 示例
手动解算验证码 - 示例
手动解算验证码 - 示例
其他验证码类型的 CaptchaOptions
其他验证码类型的 CaptchaOptions
对于以下三种验证码类型,我们支持使用以下额外选项来控制和配置自动解算算法。
- CF Challenge
- HCaptcha
- usercaptcha (reCAPTCHA)
CF Challenge
如何仿真设备
Emulation.getSupportedDevices
Emulation.getSupportedDevices
使用此命令获取所有可仿真设备的列表。此方法返回一个设备选项数组,可与 setDevice 命令一起使用。
示例
Emulation.setDevice
Emulation.setDevice
获取上述支持的设备列表后,您可以使用 Emulation.setDevice 命令仿真特定设备。此命令会更改屏幕宽度、高度、userAgent 和 devicePixelRatio 以匹配指定的设备。
横向模式
如果您想将方向更改为横向(适用于支持横向的设备),请在device_name 后添加字符串 landscape。示例
如何拦截广告
启用AdBlock 功能可以在广告下载之前拦截广告和跟踪器请求,从而减少带宽使用并提升广告密集型网站的性能。
广告拦截器 CDP 命令
Unblocker.enableAdBlock– 启用广告拦截器(默认:关闭)Unblocker.disableAdBlock– 禁用广告拦截器
广告拦截器参数
示例
被拦截的请求会在浏览器的 DevTools 控制台中以
Resource was blocked by ad-blocking 消息报告。如何拦截 Cookie 同意横幅
CookieBlock 功能会拦截常见第三方同意管理平台(CMP)的脚本,使 Cookie 同意横幅不会加载,您无需在自动化流程中查找并点击“接受”按钮。
Cookie 拦截器 CDP 命令
Unblocker.enableCookieBlock– 启用 Cookie 同意拦截(默认:关闭)Unblocker.disableCookieBlock– 禁用 Cookie 同意拦截
Cookie 拦截器参数
示例
内置覆盖范围可拦截由常见第三方 CMP 提供的横幅。网站自行托管的横幅不在覆盖范围内,如需拦截这类横幅,请找出提供同意脚本的域名(例如在 DevTools 的 Network 标签页中查看),并按上面的示例将其传入
list 参数。如何保持会话
使用此命令可以在多个浏览会话中重用同一个代理节点。这在需要保持会话一致性(如保留浏览器状态或基于 IP 的连续性)的场景中非常有用。会话持久化 CDP 命令
Proxy.useSession– 将会话与特定的 session ID 关联。sessionId– 唯一标识您的会话的字符串。
请在导航至目标页面之前使用此 CDP 命令。
示例
获取会话 ID
使用此命令检索当前浏览器会话的唯一 ID。当您需要通过 Session Logs API 查询会话日志时(例如排查错误、异常行为或高带宽使用情况),此命令非常有用。会话 ID CDP 命令
Browser.getSessionId
示例(Puppeteer)
返回值
如何下载文件
您可以使用自定义的 Download CDP 域在 Browser API 流程中自动化文件下载。这对于需要在浏览器自动化过程中直接下载文件(例如 CSV、PDF)的工作流非常有用。文件下载 CDP 命令
Download.enable– 启用指定内容类型的文件下载。Download.downloadRequest– 当请求产生下载时触发。Download.getLastCompleted– 获取上一次完成的下载信息。Download.getDownloadedBody– 获取实际下载的文件内容。
示例
更快的文本输入
对于需要快速或批量文本输入的场景,请使用自定义的 Input.type CDP 命令。这种方法比标准 CDP 文本输入方法快得多,非常适合需要高速输入或处理大量文本的自动化任务。快速文本输入 CDP 命令
Input.type- 向当前聚焦的元素发送按键或模拟输入指定文本。
示例
自定义客户端 SSL/TLS 证书
在特定域名认证需要时,使用此命令安装自定义客户端 SSL/TLS 证书。这些证书在单个 Browser API 会话期间有效,会话结束后会自动移除。Browser.addCertificate
Browser.addCertificate
代码示例
代码示例
-
将示例值
SBR_ZONE_FULL_USERNAME:SBR_ZONE_PASSWORD替换为您有效的 Browser API 凭据。 -
将
client.pfx替换为您证书文件的实际路径。该文件应为 .pfx 格式的有效 SSL/TLS 客户端证书。 -
将
secret替换为该证书的实际密码。