上个月帮朋友爬一个公开的房产数据平台,这个站反爬不算严,就一个小特点:同一个IP连续访问超15次,直接封禁24小时。
朋友当时特意搭了代理IP池,觉得只要不停轮换IP,肯定稳得很,结果脚本跑了半小时就被全站封禁,彻底凉凉。
我点开他的代码一看,瞬间懂了问题所在:IP倒是换得特别勤快,但UA从头到尾就一个——固定的Chrome 120 Windows版本。
这换谁都能检测出来啊!平台后台一眼就能捕捉到异常:同一个浏览器、同一个系统版本,隔两分钟就切换不同国家的IP访问,这摆明了是脚本操作,不封你封谁?

其实很多人爬取被封,根本不是IP池不行,而是IP和UA完全不匹配。
大家可以把IP和UA,简单理解成一个人的住址和穿搭,二者必须统一才合理。
代理IP解决的是「你从哪里访问」的问题,换IP就是换访问地址;而UA对应的是「你是什么设备、什么浏览器」的身份。
绝大多数新手的误区,就是只换地址、不换身份,硬生生把自己做成了机器人特征。
代入现实场景就很好理解:你刚刚还在北京用iPhone浏览网页,五分钟后突然跳到纽约用Windows电脑访问,过三分钟又切换到东京的MacBook。这种跨度极大、毫无逻辑的切换,任谁看都是异常操作,服务器风控系统一眼就能识别出来,直接把你划入风险名单。
所以IP和UA搭配的核心逻辑,就一句话:所有参数要自洽,看着像同一个真实用户。
给大家分享几个我实测靠谱的匹配思路,简单好记、实用性拉满。
如果你的代理IP是移动、联通这类手机宽带线路,那配套的UA优先用移动端,安卓、iOS的Chrome或Safari最合适,贴合手机上网场景。
如果是城市家庭宽带IP,就搭配Windows或macOS的桌面浏览器,版本选主流适中的,不用追最新版,也别用老旧过时的版本,贴近普通用户的电脑使用习惯。
要是企业专线IP,就固定搭配Windows桌面UA,再配合工作日的正常访问时段,贴合办公上网的行为逻辑。
很多人觉得维护UA池很麻烦,要手动整理几百上千条数据,其实完全没必要。
我日常只用一个小型UA池,一百多条数据就足够用,简单分成三类,省心又高效:
移动端(iOS、Android各占三成,覆盖主流手机设备)
Windows桌面(保留几个主流系统版本的浏览器UA)
macOS桌面(同时准备Intel和Apple Silicon芯片对应的版本,适配不同机型)
另外重点做好权重分配,市面上市占率高、大众常用的UA多轮询,小众冷门的少用,模拟真实用户的设备分布,伪装效果会自然很多。
我的通用逻辑很简单:脚本拿到新IP后,先识别IP的运营商和线路类型,再从对应的UA分类里随机调取一个,顺带补齐时区、语言参数,整套流程下来,基本看不出任何脚本痕迹。
搞定IP和UA匹配,还不算完全稳妥,访问时序和请求频率也得跟上真人节奏。
真实用户浏览网页,不可能精准每隔1秒、2秒固定刷新一次,都会有快有慢、有停顿。所以我每次请求之间,都会加0.5–2.5秒的随机延迟,偶尔再拉长一点间隔,模拟人的操作节奏。
进阶一点的小技巧也分享给大家:同一组IP+UA组合,单日访问次数一定要设上限。
正常人不会用同一个设备、同一个网络,一天刷同一个网站上千次,几十次是正常范围,一旦超出阈值,就主动更换新的IP+UA组合,最大程度还原真人行为。
其实说到底,反爬风控的核心,就是识别非人行为特征。
IP和UA搭配,从来不是复杂的技术难题,而是思维认知的问题。
你把自己代入普通用户的视角:在家用固定宽带、常用版本的浏览器,浏览网页随心所欲,有时快速翻页、有时停留细看、有时随便划划就退出,行为松散又随机,没有任何规律。
只要你在脚本里还原出这种「自然感」,比任何花里胡哨的轮换策略都管用。
IP负责换位置,UA负责换身份,二者必须默契配合、逻辑统一。别让服务器检测到你的账号行为割裂混乱,别做一眼就能被识破的机器人。
我现在写采集脚本,第一步从来不是调试代理池,而是先写好IP与UA的绑定匹配逻辑。多写几行简单的适配代码,能省下大量被封禁、反复调试的时间,性价比真的超高。
