代理池工程：隧道代理、短效代理与住宅代理的选型
IP 是协议模拟的半壁江山签名算法逆得再完美，单 IP 高频请求照样被封。代理池是规模化的基础设施，但代理类型选错，钱花了一倍效果打对折。先把三种主流代理的本质搞清楚。三种代理的本质差异1. 数据中心代理（机房 IP）来源：阿里云/AWS 等机房 IP 段特点：便宜（几毛钱/个）、快、稳定致命伤：IP 段公开可查，风控直接按 ASN/段封——电商、社交类站点基本秒识别适用：防护弱的站点、对 IP 质量不敏感的业务2. 短效代理（动态转发）模式：给你一个固定入口，后端 IP 池自动轮换（每分钟/每请求换 IP）特点：IP 量大（百万级池子），按量计费坑：IP 质量混杂（机房+住宅混合），且每次请求换 IP 对"需要登录态"的业务是灾难——登录态和 IP 跳变是风控强特征适用：无登录态的公开数据抓取3. 住宅代理（真人 IP）来源：真实家庭宽带 IP（P2P 网络或运营商合作）特点：最贵（按流量计费，几美元/GB）、最像真人关键参数：会话保持（sticky session）——同一个出口 IP 能保持 10-30 分钟，登录态业务必备适用：高风控站点（电商、社交）、登录态业务选型决策树需要登录态？ ├─ 是 → 住宅代理 + 会话保持（IP 与账号绑定） └─ 否 → 目标站点风控强？ ├─ 强（电商/社交） → 住宅代理轮换 ├─ 中（资讯/公开数据） → 短效代理 └─ 弱（政府/企业站） → 数据中心代理精髓一：会话保持是登录态业务的命脉住宅代理的 sticky session 用法：# 主流住宅代理的会话保持语法（用户名里编码会话 id） proxy = 'http://user-session-sess123:pass@proxy.provider.com:8080' # sess123 相同的请求走同一出口 IP，保持 10-30 分钟 # 账号池管理：每个账号固定一个 session id account_proxy = f'http://user-session-{account_id}:pass@proxy...'账号与 session id 永久绑定——这个账号永远从"同一个城市同一个运营商"出现，符合真人特征。精髓二：代理质量自检清单接入代理后先自检，别直接上生产：def check_proxy(proxy): # 1. 匿名度：是否泄露真实 IP / 代理特征头 r = requests.get('https://httpbin.org/headers', proxies=proxy) headers = r.json()['headers'] assert 'X-Forwarded-For' not in headers # 透明代理直接弃用 # 2. IP 类型：数据中心还是住宅 r = requests.get('https://ipinfo.io/json', proxies=proxy) # 看 org 字段：ISP 名（住宅）vs 机房名（数据中心） # 3. 目标站点实测：直接请求目标站的风控探测页 r = requests.get('https://target.com/', proxies=proxy) # 状态码和响应长度异常 = IP 已在黑名单精髓三：轮换策略的学问按请求轮换：每个请求换 IP——只适合无状态公开数据按时间轮换：每 N 分钟换——适合浏览类业务按失败轮换：请求失败才换——最省 IP 的策略，配合失败计数器账号绑定不轮换：登录态业务的唯一正确解轮换频率不是越高越好——真人不会一秒钟从美国跳到日本，IP 跳变速度和地理距离要符合物理常识。总结机房 IP 便宜但秒识别，住宅 IP 贵但像真人，按业务风控强度选型登录态业务必须住宅代理 + 会话保持 + 账号绑定接入先自检：匿名度、IP 类型、目标站黑名单轮换策略匹配业务形态，IP 跳变要符合物理常识交流微信：run1255