表现#
- 即使未设置会话 ID,IP 回显调用仍连续多次返回同一地址。
- 爬虫看似在“轮换”,实际却复用由十个连接组成的连接池,因此被按 IP 限速的目标封锁。
各客户端的解决方法#
| 客户端 | 如何让每个请求建立新连接 |
|---|---|
| cURL | 每次调用本来就会建立新连接 |
| Python requests | 不使用 Session 调用 requests.get(...),或设置 headers={"Connection": "close"} |
| Node.js fetch / undici | 每个请求新建 ProxyAgent,或设置 pipelining: 1 与 keepAliveTimeout: 0 |
| Go net/http | Transport.DisableKeepAlives = true |
| 浏览器 | 无法控制;改用粘性会话,并通过更改 -sid- 进行轮换 |
反过来的情况#
如果你*希望*多个请求使用同一出口,连接保持可在同一连接上发挥作用,但不要只依赖它:请使用粘性会话,这样即使连接重置也能继续保持同一出口。
在 ProxShift 中如何运作#
ProxShift 网关会为每个新连接选择出口,并在该连接的生命周期内保持不变(空闲连接会在 60 秒后关闭)。-sid- 可明确指定这一选择,使其不受连接影响。