快速回答
我如何查明代理请求失败的原因?
首先确定谁响应了请求:代理网关(407、CONNECT 失败、部分 502 和 504)、网站(401、403、429、大多数 503)或您的客户端(TLS 和超时错误)。然后,将具体错误信息与下面的页面对应。本参考涵盖了15错误,这些错误是爬虫使用CrawlRelay住宅代理或任何 HTTP 或 SOCKS5 代理时遇到的,每个错误都提供了解决代码。
我遇到的是哪种错误?
找到您的症状,然后打开对应页面,获取完整诊断。
| 症状 | 发送方 | 是否重试? | 页面 |
|---|---|---|---|
407,“隧道连接失败:407” | 代理 | 否 | 407 代理身份验证要求 |
401,使用WWW-Authenticate时 | 网站 | 否 | 401 与 407 的区别 |
403页面或防火墙消息 | 网站 | 尝试一次,然后停止 | 403 禁止访问 |
429,通常伴随Retry-After | 网站 | 是,稍后重试 | 429 请求过多 |
502,“CONNECT 隧道失败,响应 502” | 代理或 CDN | 是,换出口节点重试 | 502 错误网关 |
503,维护或挑战页面 | 网站或 CDN | 是,指数退避重试 | 503 服务不可用 |
504 | 代理或 CDN | 尝试一两次 | 504 网关超时 |
net::ERR_TUNNEL_CONNECTION_FAILED | 浏览器(代理拒绝 CONNECT) | 修复原因后重试 | ERR_TUNNEL_CONNECTION_FAILED |
net::ERR_PROXY_CONNECTION_FAILED | 浏览器(代理不可达) | 否 | ERR_PROXY_CONNECTION_FAILED |
ProxyError: Unable to connect to proxy | Python 客户端 | 视原因而定 | 无法连接代理 |
[SSL: WRONG_VERSION_NUMBER] | 您的 TLS 库 | 否 | SSL: WRONG_VERSION_NUMBER |
CERTIFICATE_VERIFY_FAILED | 您的 TLS 库 | 否 | 证书验证失败 |
ReadTimeout, '读取超时' | 您的客户端 | 是,换出口节点重试 | 读取超时 |
ECONNRESET, '套接字挂起', '连接被对方重置' | 网络 | 是的,安全请求 | 连接重置 |
| 'SOCKS 支持缺少依赖', curl 错误 97 | 客户端或 SOCKS 服务器 | 视情况而定 | SOCKS5 错误 |
按类型分类的所有错误
HTTP 状态码
- 401 Unauthorized vs 407
- 403 Forbidden
- 407 Proxy Authentication Required
- 429 Too Many Requests
- 502 Bad Gateway
- 503 Service Unavailable
- 504 Gateway Timeout
浏览器和客户端错误
连接和 TLS 错误
爬虫应该自动重试哪些错误?
重试那些可能自行改变的错误,停止于无法改变的错误:
- 用新连接重试: 502、504、连接重置和读取超时。新连接通常会使用不同的住宅代理出口。
- 稍后慢速重试: 429 和 503。等待
Retry-After或指数退避并加抖动,降低该主机上的并发量。 - 重试一次然后停止: 403。对新 IP 进行一次重试可区分被标记的地址和网站规则。
- 绝不盲目重试: 407、401、TLS 错误和无法访问的代理。这些是配置问题。
Python 指南 展示了一个遵循这些规则并使用 urllib3 的 Retry 的重试策略。
如何记录错误以便调试?
为每个失败请求记录五个字段:URL 的主机、状态码或异常类别、会话 ID(如有)、首字节时间,以及响应正文的前 200 个字符。正文告诉您错误页是 CDN、防火墙还是代理写的。每分钟统计每个主机和状态的错误数量:某个主机错误数量激增表示该站点已改动;所有主机同时激增表示您的配置或网络有问题。
错误参考:常见问题
如何判断错误来自代理还是网站?
看错误发生的位置。CONNECT 阶段报错,curl -v 显示,且发生在任何 TLS 握手之前,来自代理:407,或 CONNECT 时的 502、504。TLS 握手后返回携带网站头和 HTML 的状态,来自网站。客户端错误如超时和 TLS 失败,来自您的代码或网络。
失败请求会计费吗?
流量以通过网关的数据字节计费,故未达网站的错误响应如 407 实际移动字节几乎为零。网站回复的封锁页是正常响应,大小与其他页面相似。通过提前修正配置错误及降低 403 和 429 的请求速率,可以降低流量消耗。
使用住宅代理抓取正常的错误率是多少?
视目标不同而异。Proxyway 2026 年研究显示住宅代理网络的中位成功率为 99.28%,但在保护严密的真实目标如亚马逊、谷歌和Instagram 仅为74.43%。建议测量自身目标并随时间跟踪错误率:突变比绝对数更重要。