当前位置: 首页 > news >正文

影刀RPA IP代理池搭建与自动切换:突破采集频率限制

影刀RPA IP代理池搭建与自动切换:突破采集频率限制

作者:林焱

单IP频繁采集被封是每个RPA开发者迟早会遇到的问题。这篇讲怎么在影刀流程中自动切换代理IP,让你的采集更稳定、更安全。

什么时候需要代理?

  • 同一个网站短时间内请求超过50次

  • 目标网站有IP级别的频率限制

  • 需要模拟不同地区的用户(比如查不同城市的搜索结果)

  • 采集过程中IP已经被暂时封禁(收到403/429)

方案一:免费代理(不稳定,仅测试用)

importrequestsimportrandomdefget_free_proxy():"""从免费代理网站获取一个代理"""resp=requests.get("https://www.89ip.cn/api/?&tqsl=10&port=&export=&kt=2&ts=1")# 返回:ip:port\r\nip:port...lines=resp.text.strip().split('\r\n')proxy_str=random.choice(lines)return{"http":f"http://{proxy_str}","https":f"http://{proxy_str}"}# 使用代理proxy=get_free_proxy()try:resp=requests.get("https://example.com",proxies=proxy,timeout=5)print(f"代理{proxy}可用")except:print("代理不可用,换一个")

方案二:付费代理(生产环境推荐)

拼多多店群自动化报活动上架!

付费代理稳定、速度快、有专门的API获取。推荐几家:

  • 快代理(kuaidaili.com):隧道代理,一次请求一个IP
  • 芝麻代理(zhimaruanjian.com):支持按量付费
  • 站大爷(zdaye.com):长/短期代理都有

使用快代理的隧道代理(最简单,一行代码解决):

importrequests# 快代理隧道代理:固定域名+端口,每次请求自动换IPproxy={"http":"http://你的订单号:你的密码@tunnel.kuaidaili.com:端口","https":"http://你的订单号:你的密码@tunnel.kuaidaili.com:端口"}# 正常使用,底层自动每次请求换IPresp=requests.get("https://example.com",proxies=proxy)

代理池管理

如果你的代理是提取式的(一次提取多个IP),需要做池化管理:

importrequestsimportrandomimporttimeclassProxyPool:def__init__(self,api_url,pool_size=10):self.api_url=api_url# 代理提取APIself.proxies=[]self.pool_size=pool_size self.refresh()defrefresh(self):"""从API拉取新代理"""resp=requests.get(self.api_url)ip_list=resp.text.strip().split('\r\n')self.proxies=[f"http://{ip}"foripinip_listifip]print(f"代理池刷新:{len(self.proxies)}个代理")defget_proxy(self):"""获取一个代理"""ifnotself.proxies:self.refresh()returnrandom.choice(self.proxies)defremove_proxy(self,proxy):"""移除失效代理"""ifproxyinself.proxies:self.proxies.remove(proxy)defrequest_with_retry(self,url,headers,max_retries=3):"""带重试的请求"""forattemptinrange(max_retries):proxy=self.get_proxy()try:resp=requests.get(url,headers=headers,proxies={"http":proxy,"https":proxy},timeout=10)ifresp.status_code==200:returnrespelifresp.status_codein[403,429]:self.remove_proxy(proxy)# 这个IP被封了except:self.remove_proxy(proxy)# 这个IP不可用time.sleep(1)raiseException(f"请求失败,已尝试{max_retries}个代理")# 使用pool=ProxyPool("https://api.example.com/get_proxy?num=20")forurlinurls:resp=pool.request_with_retry(url,headers)process(resp)

User-Agent轮换

代理只是第一步,User-Agent也要轮换:

importrandom USER_AGENTS=["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/91.0...","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/90.0...","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 Chrome/91.0...","Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0",]defget_headers():return{"User-Agent":random.choice(USER_AGENTS),"Accept-Language":"zh-CN,zh;q=0.9,en;q=0.8","Accept":"text/html,application/xhtml+xml,*/*"}

踩坑实录

坑1:免费代理几乎不可用

免费代理的可用率不到10%,而且速度极慢(几百毫秒到几秒)。如果只是做个实验玩玩可以,生产环境必须用付费代理。几十块钱能用很久,值得。

坑2:代理协议要和目标网站匹配

HTTP代理只能代理HTTP请求,HTTPS代理才能代理HTTPS。不要以为设置了https键就能代理HTTPS:

TEMU店群矩阵自动化运营核价报活动

# 如果是HTTP代理(不支持HTTPS)proxies={"http":"http://ip:port"}# 只代理HTTP# 如果是HTTPS代理(支持connect方法)proxies={"http":"http://ip:port","https":"http://ip:port"}

坑3:代理超时设太长

代理切换时,如果每个超时等30秒,10个坏代理就是5分钟。把timeout设成5-8秒,快速试错。

坑4:短效代理频繁提取浪费额度

有些代理平台按提取次数收费。不要请求一次提取一次,一次提取20个放池子里慢慢用。大多数短效代理的有效期是1-5分钟,够你用一阵的。

避免被封的其他技巧

  • Referer:设置成目标网站的首页,看起来像正常浏览
  • Cookie:随机加入一些无意义的Cookie
  • Accept-Encoding:正常声明支持gzip/deflate
  • Connection:设置keep-alive,模拟浏览器复用连接

写在最后

代理是采集流程的保险丝——正常情况用不上,一旦IP被封你没有代理就只能干等。建议提前搭好代理池,至少准备一个隧道代理做备用。采集稳定性的差距,往往就是这一个代理池的差距。

http://www.jsqmd.com/news/1160180/

相关文章:

  • 国产化替代调查:低代码平台信创适配盘点,三件套齐备才算真适配 - 资讯报道
  • 家里压箱底黄金别闲置,淄博鑫宸黄金回收高价回收变现 - 清奢黄金上门回收
  • Grok4.5发布,马斯克终于上桌了!Cursor功不可没~
  • 什么是静态IP?网络地址固定分配机制详解
  • 2026武汉黄金回收行业解析:透明交易高效变现攻略 - 奢侈品回收机构参考
  • 基于TPS61170与PIC18F86J50的高效DC-DC升压方案设计
  • 2026 最新免费无广告微信图文视频投票小程序,智能防刷安全稳定 - 微信投票小程序
  • 劳力士中国官方售后服务门店|官方网站权威公布(2026年7月最新) - 劳力士售后服务官网
  • 实地走访武汉卡地亚回收店,报价套路一次性扒干净 - 融媒生活
  • STM32F103RC与TS2007FC音频系统设计与优化
  • 兆易创新:乘风存储周期崛起,从绘制芯片图纸到搭建本土 “织布机”,市值核心是三样硬核资产
  • 江诗丹顿中国官方售后服务中心|地址与官方电话权威信息公示(2026年7月更新) - 江诗丹顿服务中心
  • UE5 UMG渲染层级深度解析:从ZOrder原理到实战拖拽系统
  • PWM 控制 12V 直流电机实战:Arduino UNO R3 实现 0-300 转/分钟调速(附代码)
  • Matlab 2024a PX4 支持包:WSL2 环境 3 大常见报错与根因排查指南
  • CO2 传感器选型:NDIR、PAS、热导、电化学原理与 DFRobot Gravity 参数对比
  • 2026技术人才找工作平台靠谱大盘盘点 中高端求职平台评测解析 甄选优质服务商避坑全FAQ - 行业观察网
  • Claude Fable 5人像生成:从提示词工程到高级感塑造实战
  • 紧急通知:OneNote Copilot插件即将强制升级!3类旧版笔记将丢失AI解析能力,立即备份这4个关键字段
  • 初中毕业学厨师去哪?2026 湖北新东方烹饪学校最新招生简章 - 湖北找学校
  • ASMR音频下载管理工具:如何轻松构建个人放松音频库
  • 用VR-Reversal解锁3D VR视频的平面化魔法:三步实现沉浸式内容创作
  • 蜀山商圈实测调研,罗列入手小众独立制表腕表变现过程的各项注意细节 - 生活时报
  • 如何让 AI 分工干活?我一直在用的 AI 协作工作流(附实战方法)
  • 济南黄金回收哪家靠谱?认准鑫宸,报价实报实收 - 清奢黄金上门回收
  • 基于MCP3551与PIC18F46K42的高精度数据采集系统设计
  • MATLAB GUI 车牌识别系统:5步构建交互式界面与实时处理模块
  • 数字电路实验排错指南:3种常见74系列芯片故障现象与逻辑分析仪定位方法
  • 欧米茄中国官方售后服务体系指南大全|最新维修地址及电话权威收录(2026年7月最新) - 欧米茄中国服务中心
  • 智能批量水印神器:semi-utils让摄影后期效率提升10倍