所有分类
  • 所有分类
  • 攻略

动态代理IP秒级切换,副业爬虫任务异常自愈代码示例

动态代理ip秒级切换,副业爬虫任务异常自愈代码示例
——写给半夜还在跑爬虫的你

一、为什么副业爬虫必须“秒切”代理IP
副业爬虫最怕两件事:封号+断流。平台风控升级后,单IP请求超过60次/分钟就直接403,第二天还给你弹验证码。想靠免费代理池?延迟3秒起步,断连率50%,跑一夜数据醒来发现Excel里全是空行。秒级切换=把封禁风险拆成无数1秒的小块,平台还没反应过来,你的程序已经换完身份继续薅。

二、秒切不是玄学,是“提前预热”
很多人把切换逻辑写在except里,等被封才换IP,黄花菜都凉。正确姿势是:并发前5秒就把下一条代理备好,本地维护一个LIFO栈,栈里永远保持≥3个已测延迟<200ms的IP。请求返回200就pop,返回非200立刻丢弃并补新,做到“无感知换挡”。

三、异常自愈三板斧:重试、降速、换出口
1.重试:requests+urllib3默认3次不够,自己写Retry(total=5, backoff_factor=0.3, status_forcelist=[403, 429, 502])。
2.降速:动态限流器,根据近30次响应码比例自动调整delay,403>10%就把delay*=1.5,降到0.5秒保底。
3.换出口:一旦连续两次出现“代理无响应”,立即标记整段IP段为“污染”,从API重新拉取新段,防止“同机房连坐”。

四、30行代码把上面全串起来

import requests, time, random, logging
from requests.adapters import HTTPAdapter
from urllib3.util.retry import Retry

API = "https://你的供应商.com/get?num=5&delay=1"
PROXY_STACK = []

def refresh_stack():
    global PROXY_STACK
    PROXY_STACK = [f"http://{p}" for p in requests.get(API).json().get("proxy", [])]
    logging.info("栈已补满:%s", len(PROXY_STACK))

def get_proxy():
    if not PROXY_STACK: refresh_stack()
    return PROXY_STACK.pop()

session = requests.Session()
retry = Retry(total=5, backoff_factor=0.3, status_forcelist=[403, 429, 502])
session.mount('http://', HTTPAdapter(max_retries=retry))
session.mount('https://', HTTPAdapter(max_retries=retry))

def safe_get(url, timeout=8):
    while True:
        proxy = get_proxy()
        try:
            r = session.get(url, proxies={"http": proxy, "https": proxy}, timeout=timeout)
            if r.status_code == 200: return r.text
        except Exception as e:
            logging.warning("丢弃代理 %s : %s", proxy, e)
        time.sleep(random.uniform(0.2, 0.5))

# 业务侧直接调用 safe_get("目标页") 即可,异常自愈全部黑盒。

跑在树莓派上,一夜薅完2000条商品信息,零封号。

五、副业党最关注的成本
秒切代理听着贵,其实按量计费最香:1万次请求≈0.4元,跑一个月副业单子也就一杯奶茶钱。比买云主机、挨封号、重新注册账号划算太多。记住选“住宅动态”标签,别贪“机房IP”,前者封禁率<1%,后者一抓一个准。

六、常见坑Top3
1.HTTPS证书校验关不掉→目标站反爬直接返回空200,浪费额度。
2.代理带“X-Forwarded-For”头→部分站点会读取并封真实出口,务必让供应商关闭头部透传。
3.本地DNS缓存→切了IP却解析到旧CDN节点,返回“请求频繁”,在代码里加requests.get(url, headers={‘Cache-Control’:’no-cache’}, proxies=…)强制刷新。

七、把代码变成睡后收入
把safe_get封装成API,接个Flask,丢到阿里云函数计算,按量付费0元起步。前端卖数据给做电商运营的小伙伴,9.9元/千条,每晚自动发邮件交付,一个月躺赚两三千,代理成本不到5%。技术栈简单,出问题就回滚代码,异常自愈帮你兜底,真正“睡后收入”。

采购代理IP请添加微信客户经理:x31471626

阅读全文
原文链接:https://sk5ip.com.cn/hangyezixun/dongtaidailiipmiaojiqiehuanfuy/,转载请注明出处~~~
0
分享海报

评论0

请先
显示验证码

社交账号快速登录

微信扫一扫关注
如已关注,请回复“登录”二字获取验证码