Skip to main content

如何解决验证码

使用 Browser API 浏览页面时,我们集成的验证码解算器默认会自动解算所有验证码。您可以使用以下自定义 CDP 函数在代码中监控此自动解算过程。
如果您想通过控制面板完全禁用验证码解算器,请参阅禁用验证码解算器功能。
验证码解算后,如有表单需要提交,则默认情况下会提交。

验证码解算器 - 自动解算

使用此命令返回验证码已解算、解算失败或未检测到之后的状态。
示例
如果验证码解算失败,请尝试重试。如果问题持续存在,请提交支持请求并详细说明您遇到的具体问题。
使用以下命令可以精确定位验证码解算流程中更具体的阶段:示例
以下代码建立 CDP 会话、监听验证码事件并处理超时:

验证码解算器 - 手动控制

如果您想手动配置或完全禁用我们默认的验证码解算器,改为手动调用解算器或自行解算,请参阅以下 CDP 命令与功能。
此命令用于控制验证码的自动解算。您可以禁用自动解算,或为不同的验证码类型配置算法并手动触发:
在会话内完全禁用自动解算器的 CDP 命令示例:
对于以下三种验证码类型,我们支持使用以下额外选项来控制和配置自动解算算法。
CF Challenge

如何仿真设备

使用此命令获取所有可仿真设备的列表。此方法返回一个设备选项数组,可与 setDevice 命令一起使用。
示例
获取上述支持的设备列表后,您可以使用 Emulation.setDevice 命令仿真特定设备。此命令会更改屏幕宽度、高度、userAgent 和 devicePixelRatio 以匹配指定的设备。

横向模式

如果您想将方向更改为横向(适用于支持横向的设备),请在 device_name 后添加字符串 landscape
示例

如何拦截广告

启用 AdBlock 功能可以在广告下载之前拦截广告和跟踪器请求,从而减少带宽使用提升广告密集型网站的性能

广告拦截器 CDP 命令

  • Unblocker.enableAdBlock – 启用广告拦截器(默认:关闭)
  • Unblocker.disableAdBlock – 禁用广告拦截器

广告拦截器参数

请在导航至目标页面之前启用广告拦截。
示例
被拦截的请求会在浏览器的 DevTools 控制台中以 Resource was blocked by ad-blocking 消息报告。
查看完整的广告拦截示例脚本 CookieBlock 功能会拦截常见第三方同意管理平台(CMP)的脚本,使 Cookie 同意横幅不会加载,您无需在自动化流程中查找并点击“接受”按钮。
  • 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 会话期间有效,会话结束后会自动移除。
  • 将示例值 SBR_ZONE_FULL_USERNAME:SBR_ZONE_PASSWORD 替换为您有效的 Browser API 凭据。
  • client.pfx 替换为您证书文件的实际路径。该文件应为 .pfx 格式的有效 SSL/TLS 客户端证书。
  • secret 替换为该证书的实际密码。