为 CAPTCHA 求解选择和配置代理
选择一个在提交解答时能够复用其出口的代理。求解端和最终请求应使用相同的出口,以及随解答返回的浏览器身份。如果轮换代理提供商在每次连接时分配不同的出口,仅复用其 URL 并不足够。
本页内容
选择能够保持不变的出口
使用客户提供的 HTTP 或 HTTPS 代理。如果提供商会轮换出口,请在创建任务前配置其会话或出口固定功能,并在最终提交时保持该会话。
不要仅凭住宅、移动或数据中心等标签选择代理。这些标签不能证明目标会接受请求。应通过实际的求解与提交流程比较代理;仅连接成功并不能证明 CAPTCHA 分数。
设置 URL 格式并编码凭据
http://USERNAME:[email protected]:8080
https://USERNAME:[email protected]:8443
Password p@ss:word becomes p%40ss%3Aword in the password component:
http://USERNAME:p%40ss%[email protected]:8080分别对用户名和密码部分中的保留字符进行百分号编码。不要对整个 URL 编码:其协议方案和分隔符必须保持不变。示例展示了包含 @ 符号和冒号的密码应如何写入 URL。
对于 proxyCandidates,每个 URL 都不得包含路径、查询参数或片段。不要在日志中记录代理密码,包括打印完整任务请求的日志。
在整个请求流程中使用该代理
- 1.
仅设置一个代理字段
在任务创建请求中,提供
proxy或proxyCandidates,不能同时提供两者。对于一个已知出口,使用proxy。候选列表最多接受十二个不同的 URL,让 solvethree 尝试其他出口;但不保证任何候选代理一定可用。会话任务要求使用单个代理。 - 2.
等待可用的解答
任务状态为
pending或solving时继续轮询。只有ready状态才包含可用的解答。创建任务或收到 HTTP 成功响应并不表示求解已完成。 - 3.
通过成功的出口提交
向预期目标提交解答时,使用成功的代理以及返回的
userAgent和secChUa。使用候选代理时,不要假定第一个 URL 就是成功的那个。不要替换为无关的用户代理、客户端提示或目标 URL。
如果需要备用出口,请参阅代理候选选择。如果已知应用将使用哪个出口,使用单个固定出口的代理更简单。
修复身份验证和可达性故障
读取成功响应载荷前,先处理非成功的 HTTP 响应。任务最终失败属于另一个层面:当状态为 failed 时,停止轮询并检查 errorCode 和 error。
- HTTP 407
代理需要身份验证。这不是求解服务 API 的身份验证问题,也不是目标网站登录失败。
试试这样做: 检查所选代理的凭据、凭据编码和提供商路由,不要记录密码。更换 solvethree API 密钥无法解决代理身份验证问题。
- 应用无法通过代理连接
检查 URL 的协议、主机名和端口,然后从应用运行环境测试通过该代理的连接。
试试这样做: 先修正端点或提供商路由,再创建新任务。注意区分连接失败与目标返回的响应。
- 任务失败并返回
site-unreachable 阅读随附的错误信息,并检查所选代理是否能访问预期目标。
试试这样做: 重试前,先修正失败信息所指出的目标或代理配置。不要反复提交未更改的无效输入,也不要认定问题是余额不足。
- 任务已就绪,但目标拒绝请求
检查发往目标的请求,确认使用了正确的求解结果、求解成功时的代理、返回的浏览器身份信息和预期目标 URL。
试试这样做: 先修正不匹配之处,再付费进行下一次求解。求解结果就绪不保证目标会接受;对于 reCAPTCHA,请继续参阅令牌被拒绝的诊断。
来源与 API 参考
运行您的第一个任务。
使用 $5 工作区额度开始体验。