反爬虫措施主要包括以下十类技术手段:一、请求头检测通过分析HTTP请求头中的User-Agent字段识别非浏览器访问行为。网站可能建立白名单机制,仅允许符合浏览器特征的User-Agent(如Chrome、Firefox等)访问,而屏蔽自定义或空值的请求头。二、IP限制对短时间内高频访问的固定IP实施封禁或限流。例如,单IP每分钟请求超过50次可能触发临时封锁,或通过CDN节点分散流量降低单点压力。三、访问频率限制基于程序或防火墙设置阈值,对超出单IP访问频率的行为进行限制。常见策略包括动态调整限流阈值(如根据时段调整)或结合行为分析(如非人类操作模式)。四、Cookie限制通过跟踪Cookie标识用户访问频率。若单Cookie在短时间内发起大量请求(如每秒10次以上),系统可能要求重新验证身份或直接拒绝服务。五、动态渲染利用JavaScript动态修改HTML DOM结构,使静态爬虫无法获取完整内容。例如,通过React/Vue等框架渲染的页面,初始HTML仅包含基础框架,核心数据需执行JS后加载。六、图片/验证码验证访问次数超过阈值后触发验证机制,包括数字验证码、图形拖拽验证或行为验证(如点击特定区域)。高级场景可能采用AI驱动的动态验证码(如Google reCAPTCHA v3)。七、Spider Trap(蜘蛛陷阱)通过设计无限深度目录结构(如/page/1/2/3/...)或动态生成大量伪页面,消耗爬虫资源。部分网站还会利用meta标签的refresh属性制造重定向循环。八、加密参数在请求URL或表单中加入动态加密参数(如MD5签名、时间戳加密),需破解参数生成逻辑才能正常访问。例如,某些API要求请求参数包含sign=MD5(key+timestamp)。九、SESSION访问限制统计登录用户的操作行为(如短时间点击次数、页面停留时间),与正常用户模型比对后限制异常操作。例如,单用户5秒内点击10次提交按钮可能触发风控。十、其他技术手段Flash封装:将核心内容嵌入Flash文件,规避静态爬虫抓取。AJAX混淆:通过动态生成接口名称或参数,增加爬虫解析难度。JS加密:对关键数据(如价格、联系方式)进行JS动态解密。CSS混淆:利用CSS定位隐藏元素或干扰选择器匹配。应对方案需结合技术手段模拟真实用户行为,例如使用随机请求头库、IP代理池轮换、模拟人类访问间隔(如泊松分布)、Cookie池管理、逆向加密参数算法,以及WebDriver无头模式(Headless Chrome)等。



































