从代码调度看静态代理和动态代理区别:Session、粘性与轮换-易代理
概念清楚后,代码里怎么挂才是关键。同样一个代理IP,静态用成动态、动态用成静态,都会出事故。
一、静态代理要绑 Session 复用
pythonsession = requests.Session()
session.proxies = { "http": "http://user:pass@static-gate:port", "https": "http://user:pass@static-gate:port",
}
session.get("https://target/dashboard", timeout=(5, 15))静态出口要复用 TCP 和 TLS,别每次新建 Session。否则固定IP意义被自己打散。
二、动态代理要按策略轮换
动态池别手写随机字符串,封装成选择器:
pythondef pick_proxy(): return proxy_pool.weighted_pick()for url in urls: p = pick_proxy() try: r = session.get(url, proxies=p, timeout=(5, 15)) except Exception: proxy_pool.mark_fail(p)
轮换频率按目标站风控:
松站:每 100 请求换一次
中站:每 20~50 请求换一次
严站:每次请求换,但配合退避
三、粘性会话是中间态
有些动态代理支持“会话粘连”:同一任务在 5 分钟内走同一出口,超时再换。
pythonmeta = {"proxy_session": "task_123"}适合:需要短暂登录态,但又不想长期占固定IP。隧道代理常带这个能力。
四、静态代理也要有健康检查
静态不是“不会坏”。出口老化、链路抖动、目标站拉黑,都要监控:
连续失败次数
TLS 握手耗时
隧道断连率
地区漂移
坏了对静态代理更致命,因为没自动轮换兜底。要配主备双出口。
五、错误分类决定换不换
连接超时:动态直接换,静态进冷却
403:先查请求头,再决定换出口
429:降频,不盲目换IP
验证码:动态切出口,静态降速
静态代理和动态代理区别在代码里表现就是:静态重“保活”,动态重“淘汰与补充”。
相关标签:代理ip,ip代理,http代理,代理服务器ip,开放代理,文档中心,新闻,动态住宅ip,ip池,socks5代理