反爬虫系统如何检测代理(技术深度解析)

全面技术分析现代反机器人系统如何检测代理用法:IP声誉,TLS指纹,浏览器指纹,行为分析,以及经过验证的对策,以保持不被发现.

反爬虫系统如何检测代理(技术深度解析)

现代的反机器人系统已经发展到远远超出了简单的IP屏蔽. 今天的探测平台,如Cloudflare,Akamai,PerimeterX(现为Human),DataDome部署多层分析,从你的TLS握手到鼠标微移动检查一切. 准确了解这些系统是如何运作的,对于任何建立合法数据收集管道、开展竞争性情报行动或测试自己的网站防御系统的人来说,都是至关重要的。

这种技术的深度潜水解析了每个主要的探测矢量,解释了基础算法,并演示了如何构建能够通过甚至最具有攻击性的机器人减缓系统的请求. 无论你是一个开发者,安全研究者,还是数据工程师, 你会带着可操作的知识离开, 你可以立即申请。

道德说明: 本条的用意是正当的,例如网上刮掉公开的数据、安全研究、质量保证测试和保护自己的基础设施。 始终尊重机器人.txt,服务条款,以及适用的数据保护法.

代理探测军备竞赛

机器人探测的历史记录是技术军备竞赛。 在2000年代早期,阻断bots意味着维持已知的不良IP地址列表. 到2010年,CAPTCHAs成为标准检查站. 到2020年,Cloudflare等公司正在使用同时分析数百个信号的机器学习模型,每秒处理超过4500万个HTTP请求.

今天的反机器人系统在 风险评分模型。它们不是做出二进制允许/阻止决定,而是根据从多个层次收集的几十个信号分配信任分数。 一个请求可能会为干净的住宅IP获得0.2分,为可疑的TLS指纹获得0.3分,为自然鼠标运动失去0.1分等. 一旦累积分数越过一个阈值,系统就会从被动监测升级为主动挑战(CAPTCHA,JavaScript differences)或彻底封杀.

了解这些层是构建防检测系统的关键. 各各剖开.

基于IP的检测方法

IP分析仍然是第一层和最快的机器人检测层. 它需要零客户端交互,并且可以在服务器处理单一字节应用逻辑之前拒绝请求.

ASN 分类

每个IP地址都属于一个 自动系统编号( ASN),用于识别网络操作员。 反机器人系统维持数据库,将ASN分类为:

ASN 类型实例风险水平检测率
住宅区康卡斯、沃达丰、罗斯泰勒科姆低级~5% (中文(简体) ).
移动载体T -Mobile, Jio, MegaFon 游戏机主题 游戏主题 游戏主题极低~2% (简体中文).
商业ISP商业纤维,租赁线路中型约25%
数据中心/ 主机AWS, Azure, 数字海洋, 海茨纳高级约80%
已知的代理/VPNLuminati 范围, NordVPN 出口关键约95%

IP2Location,MaxMind,IPinfo等服务提供ASN分类数据. Cloudflare使用它自己的庞大数据集,通过观测数百万网站的流量而建立.

IP 声誉数据库

ASN 类型之外,每个单个 IP 累积一个 声誉得分。此分数因数如下:

  • 虐待历史 – 先前的垃圾邮件、刮刮或攻击来自此IP的活动
  • 使用量 ——该IP最近点击了多少个独特的网站.
  • 端口扫描历史 - 任何侦察行为
  • 黑名单的存在 - 在垃圾邮件、虐待IPDB、蜜罐项目上列名
  • 子网行为 如果邻居的IP在同一24街区被标记, 你的也会受到惩罚

这正是为什么 住宅代理大于数据中心代理 因为刮刮。 一个来自主要ISP的住宅IP从高信任基线开始,而来自AWS的数据中心IP则从信任赤字开始.

地理位置一致性

反机器人系统将IP的地理定位与其他信号交叉参照. 如果你的浏览器 Intl.DateTimeFormat().resolvedOptions().timeZone 报告"America/New York" 但你的IP地理定位到法兰克福, 这不匹配会升起一面旗帜. 同样, Accept-Language 标头与IP国家对照检查.

代用名词 目标定位 让您按国家、州或城市选择代理,确保您的IP地理定位与您的浏览器配置精确匹配。

TLS 指纹:JA3和JA4

TLS指纹是最为强大的被动检测方法之一. 它不需要JavaScript执行,甚至可以对无头浏览器工作.

JA3如何运作

当客户端启动 TLS 连接时,第一个消息就是 客户端 你好 包裹 此包广告客户端的能力:支持的TLS版本,密码套件,扩展,椭圆曲线,以及点格式. 那个 JA3 算法 (由 Salesforce 开发) 使这些值缩合,并产生 MD5 散列.

# JA3 string format:
# TLSVersion,Ciphers,Extensions,EllipticCurves,EllipticCurvePointFormats
# Example: Chrome 120 on Windows
771,4865-4866-4867-49195-49199-49196-49200-52393-52392-49171-49172-156-157-47-53,0-23-65281-10-11-35-16-5-13-18-51-45-43-27-17513-21,29-23-24,0
# Example: Python requests (default)
771,4866-4867-4865-49196-49200-163-159-52393-52392-52394-49195-49199-162-158-49188-49192-49187-49191-49162-49172-49161-49171-57-56-51-50-49-159-158-57-56,0-23-65281-10-11-35-16-5-34-51-43-13-45-28-21,29-23-24-25-256-257,0

这两种散列完全不同. Anti-bot系统为每个主要浏览器版本、操作系统和自动化工具维护已知JA3散列的数据库。 如果你的请求是Chrome 120,通过它的用户代理头 但呈现一个 Python 请求 JA3 散列,你立即被标记。

JA4:下一代

日本4号 (FoxIO开发)在JA3上有几种改进方式. 它产生人可读的指纹,类型密码套件和扩展,以减少对订购变化的敏感性,并为不同的TLS阶段添加单独的指纹. JA4套套房包括:

  • 日本4号 - TLS客户端 Hello指纹(改进后的JA3)
  • 日本4号卫星 - TLS 服务器 Hello 指纹
  • 日本4H ——HTTP客户端指纹(标题顺序,值)
  • JA4X号 - X.509 证书指纹
  • 日本4T号 - TCP指纹

两者共同为每一个连接创造了一个全面的网络层特征.

击败 TLS 指纹

为了避免TLS指纹检测,您的HTTP客户端必须产生与其冒充的浏览器相同的JA3/JA4散列. 现有几种办法:

# Python: Using curl_cffi to impersonate Chrome's TLS fingerprint
from curl_cffi import requests
session = requests.Session(impersonate="chrome120")
# Configure ProxyHat residential proxy
proxy = "http://USERNAME:PASSWORD@gate.proxyhat.com:8080"
response = session.get(
    "https://target-site.com/data",
    proxies={"http": proxy, "https": proxy},
    headers={
        "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
        "Accept-Language": "en-US,en;q=0.9",
        "Accept-Encoding": "gzip, deflate, br",
        "Sec-Ch-Ua": '"Not_A Brand";v="8", "Chromium";v="120", "Google Chrome";v="120"',
        "Sec-Ch-Ua-Mobile": "?0",
        "Sec-Ch-Ua-Platform": '"Windows"',
    }
)
print(response.status_code)

关于基于Node.js的项目,请参见我们 Node.js 代理集成指南 TLS 配置示例。

浏览器指纹

虽然TLS指纹在网络级别工作,但浏览器指纹通过JavaScript在渲染的页面内运行. 反机器人脚本(被Cloudflare或DataDome等服务注入)收集一个信号星座,以建立独特的设备身份.

手印画

HTML5 Canvas API根据GPU,驱动程序版本,以及操作系统,使图形不同. 反机器人脚本绘制特定图像(通常是带有梯度和曲线的文字),然后调用 toDataURL() 以提取像素数据。 由此产生的散列作为硬件指纹.

// Simplified Canvas fingerprinting (what anti-bot scripts do)
const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');
ctx.textBaseline = 'top';
ctx.font = '14px Arial';
ctx.fillStyle = '#f60';
ctx.fillRect(125, 1, 62, 20);
ctx.fillStyle = '#069';
ctx.fillText('BotDetect,12345', 2, 15);
ctx.fillStyle = 'rgba(102, 204, 0, 0.7)';
ctx.fillText('BotDetect,12345', 4, 17);
const fingerprint = canvas.toDataURL();
// Hash this to get a consistent device identifier

Puppeteer和Playwright等无头浏览器产生与真实浏览器不同的Canvas指纹. 这些指示牌包括:

  • 在所有实例中均相同产出(真正的硬件产生独特的变化)
  • 缺少 GPU 特定渲染文物
  • 不同的反变异行为
  • 声称操作系统的异常字体渲染

WebGL 指纹

WebGL 指纹提取 GPU 信息 WEBGL_debug_renderer_info 扩展名 :

const gl = document.createElement('canvas').getContext('webgl');
const debugInfo = gl.getExtension('WEBGL_debug_renderer_info');
const vendor = gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL);
const renderer = gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL);
// Example: "Google Inc. (NVIDIA)" / "ANGLE (NVIDIA, NVIDIA GeForce RTX 3080, OpenGL 4.5)"

如果你的用户代理声称macOS,但WebGL报告一个NVIDIA GPU(Macs使用AMD或Apple硅GPU),这种不一致性是偷窥的强烈信号.

音频连接指纹

由于音频堆栈中的浮点处理差异,Web Audio API在不同硬件上产生略微不同的输出. 反机器人脚本创建了振荡器,通过压缩器处理,并将由此产生的缓冲器散开. 这种指纹很难一成不变。

导航属性分析

反机器人剧本检查了几十个 navigator 不一致的属性 :

  • navigator.webdriver 设置为 true 在自动浏览器中( 最明显的显示)
  • navigator.plugins ——真正的Chrome有特定的插件;无头的Chrome经常没有
  • navigator.languages ——必须匹配 Accept-Language 标题
  • navigator.hardwareConcurrency - 匹配现实的CPU核心计数
  • navigator.deviceMemory ——必须是可信值(4,8,16GB)
  • navigator.platform ——必须符合用户代理操作系统的要求

现代反机器人系统也检查 Chrome DevTools 协议 泄漏: 自动 Chrome 事件曝光 window.cdc_adoQpoasnfa76pfcZLmcfl_Array 或类似的变量由ChromeDriver注入.

行为分析

行为分析是最复杂的检测层,最难被打败. 它监测用户如何随时间而与一个页面互动,构建一种区分人类与bots的行为剖面.

鼠标移动模式

人类鼠标运动随即开始 菲茨法则:运动时间随着目标的距离比比的偏移而增加对数. 反机器人系统轨道:

  • 高速曲线 ——人类加速并顺利减速;bots即时跳跃.
  • 贝塞尔轨道 ——人类光标遵循弯曲路径,而非直线.
  • 微更正 目标附近有小的过度射击和矫正
  • 闲暇期 ——人类暂停阅读;bots连续执行
  • 事件频率 ——人类生成~60-100鼠标移动事件每秒;完美间隔表示自动化

滚动和交互时间

反机器人系统也分析:

  • 滚动速度 ——人类以可变速度滚动,有动力;bots使用. window.scrollTo() 产生即时统一卷轴
  • 第一次互动的时间 ——页面加载后用户参与的速度
  • 点击精度 ——bots点击精确坐标;人类有微小的抵消变化.
  • 按键动态 ——打字速度,键间间隔,以及错误校正模式.
  • 移动触摸事件 压力、接触区和多触碰模式

会话级行为

反机器人系统分析整个会话:

  • 导航模式 ——bots倾向于按系统化,深度第一顺序访问页面;人类跳来跳去.
  • 请求节奏 ——完美定期间隔(例如请求之间精确的2.0秒)为红旗.
  • 参考链 - 直接到达深层网页,而不首先访问主页
  • 资源加载 — bots 经常跳过加载 CSS, 图像和字体
  • Cookie 行为 立即接受或拒绝同意

HTTP 信头分析

HTTP头部携带的信息比大多数开发者意识到的要多,反机器人系统仔细审查.

头顺序指纹

浏览器以一致的,特定浏览器的顺序发送HTTP头. Chrome, Firefox, 和Safari 各自有一个不同的标题顺序图案. 反机器人系统为预期头命令保持签名:

# Chrome 120 typical header order:
Host
Connection
sec-ch-ua
sec-ch-ua-mobile
sec-ch-ua-platform
Upgrade-Insecure-Requests
User-Agent
Accept
Sec-Fetch-Site
Sec-Fetch-Mode
Sec-Fetch-User
Sec-Fetch-Dest
Accept-Encoding
Accept-Language
# Python requests default order:
User-Agent
Accept-Encoding
Accept
Connection

区别是显而易见的。 Python 按字母顺序发送四个信头; Chrome 发送 14 个信头与 sec-ch-ua 标题前 User-Agent。 。 。

缺少或额外信头

现代浏览器发送 客户端提示 信头( E)Sec-Ch-Ua, (中文). Sec-Ch-Ua-Mobile, (中文). Sec-Ch-Ua-Platform和(或) 获取元数据 信头( E)Sec-Fetch-Site, (中文). Sec-Fetch-Mode, (中文). Sec-Fetch-Dest) (中文(简体) ). 如果你的用户代理声称是Chrome 120,但你错过了这些信头, 这个请求被微乎其微地检测为非浏览器流量.

接受信头图案

每个浏览器都有一个独特的 Accept 不同资源类型的头图案. 对于 HTML 页面, Chrome 发送 :

text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7

Firefox发送时:

text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/png,image/svg+xml,*/*;q=0.8

这些图案必须和声称的浏览器完全匹配.

Java脚本挑战与 CAPTCHAs

当被动检测产生模棱两可的分数时,反机器人系统升级为主动挑战.

JavaScript 执行挑战

Cloudflare的Turnstile和Akamai的Bot管理器等服务注入JavaScript,必须正确执行才能进行请求. 这些脚本 :

  • 验证 JavaScript 引擎是否匹配所声称的浏览器( Chrome 的 V8, Firefox 的 SpiderMonkey)
  • 测量特定算法的执行时间( 以检测仿真)
  • 检查全球范围内是否存在自动化框架文物
  • 假设所有浏览器 API 并验证其行为符合预期
  • 创建用户看不见的“ honypot” 元素, 但由 bots 交互

工作挑战证明

一些系统发布计算工作证明挑战,要求客户端解决一个数学谜题(类似于加密货币开采). 这对于单个浏览器来说是微不足道的,但对于同时提出数千项请求的bots来说却是昂贵的。

CAPTCHA 升级

CAPTCHA是最后的防守级别. 现代的CAPTCHA如reCAPTCHA v3和hCaptcha并不总是表现出视觉挑战;它们根据上面讨论过的相同行为信号分配一个分数. 低分引发视觉挑战;非常低分导致硬块.

不同的代理类型如何进行反对检测

并不是所有的代理人在反机器人逃逸时都是平等的. 下面是每种类型如何在检测矢量之间进行:

检测方法数据中心代理住宅周边移动代理
IP 声誉常标很少标记几乎从来没有标记过
ASN 分类主机ASN( 高风险)ISP ASN(低风险)载体ASN(风险最小)
黑名单覆盖列出的~60-70%~5%-10%上市< 2% 已列出
地理一致性有限地点广泛城市一级的目标基于承运人的地点
TLS 指纹依赖客户者*依赖客户者*依赖客户者*
浏览器指纹依赖客户者*依赖客户者*依赖客户者*
行为分析依赖客户者*依赖客户者*依赖客户者*
总检测率约70-85%~5%-15%~2-8% (%)

*TLS,浏览器指纹,行为信号取决于您的客户端执行,而不是代理类型. 然而,住宅和移动IP给你一个更强大的起始位置.

综合比较,见我们关于 住宅与数据中心与移动代理。 。 。

关键见解: 代理类型决定您的 IP 层信任分数, 但您的总体检测阻力取决于获取 每个 右层:TLS,头部,指纹,和行为. 一个拥有默认 Python 请求指纹的住宅IP仍将被屏蔽.

反措施和最佳做法

现在你明白了每一个检测层, 这里就是如何建立一个系统,通过它们。

1. 从清洁住宅实施伙伴开始

使用 代理代理池 确保您的交通来源于 ISP 指定的地址。 战略性的IP旋转:不是在每次请求时(这是可疑的),而是在自然的会话界限.

2. 匹配您的 TLS 指纹

使用仿真浏览器 TLS 堆栈的库 。 在Python语中, curl_cffitls_client 能够复制Chrome,Firefox,和Safari JA3大麻. 在吴, utls 图书馆提供同样的能力。

3. 维护一致的标题配置

构建匹配目标浏览器的完整头集 。 包含客户端提示并获取元数据头 。 保持标题顺序与你冒充的浏览器一致.

4. 实施现实的指纹

如果使用无头浏览器,则通过Puppeteer Stealth,Playwright Stealth等工具或Multilogin等商业解决方案,应用指纹窥探. 确保 Canvas、 WebGL 和 AudioContext 输出与您声称的硬件一致 。

5. 添加类似人类的行为

在请求之间引入可变的延迟( 使用分布而非常数) 。 如果控制浏览器,模拟鼠标的移动,滚动,读取暂停. 装入所有页面资源, 包括 CSS, 图像, 和字体 。

6. 妥善管理会话

在会话内保持 cookie 覆盖请求 。 接受同意对话框 。 在浏览深页前访问主页. 在会话中使用一致的代理IP,然后为下一会话旋转.

完整的反检测设置示例

以下是一个生产准备的Python例子,其中结合了上述所有对策:

from curl_cffi import requests
import random
import time
class AntiDetectionClient:
    """
    Production-grade HTTP client with anti-detection measures.
    Uses ProxyHat residential proxies + Chrome TLS impersonation.
    """
    PROXY_GATEWAY = "gate.proxyhat.com"
    PROXY_USER = "YOUR_USERNAME"
    PROXY_PASS = "YOUR_PASSWORD"
    # Realistic Chrome 120 headers (correct order matters)
    CHROME_HEADERS = {
        "sec-ch-ua": '"Not_A Brand";v="8", "Chromium";v="120", "Google Chrome";v="120"',
        "sec-ch-ua-mobile": "?0",
        "sec-ch-ua-platform": '"Windows"',
        "Upgrade-Insecure-Requests": "1",
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
        "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
        "Sec-Fetch-Site": "none",
        "Sec-Fetch-Mode": "navigate",
        "Sec-Fetch-User": "?1",
        "Sec-Fetch-Dest": "document",
        "Accept-Encoding": "gzip, deflate, br",
        "Accept-Language": "en-US,en;q=0.9",
    }
    def __init__(self, session_id=None):
        self.session = requests.Session(impersonate="chrome120")
        self.session_id = session_id or self._generate_session_id()
        self._setup_proxy()
    def _generate_session_id(self):
        return f"session_{random.randint(100000, 999999)}"
    def _setup_proxy(self):
        # Use session-based sticky proxy for consistent IP within a session
        proxy_url = (
            f"http://{self.PROXY_USER}-session-{self.session_id}"
            f":{self.PROXY_PASS}@{self.PROXY_GATEWAY}:8080"
        )
        self.session.proxies = {"http": proxy_url, "https": proxy_url}
    def _human_delay(self, min_sec=1.0, max_sec=3.5):
        """Introduce variable delay mimicking human reading time."""
        delay = random.uniform(min_sec, max_sec)
        # Add occasional longer pauses (simulating reading)
        if random.random() < 0.15:
            delay += random.uniform(2.0, 5.0)
        time.sleep(delay)
    def get(self, url, **kwargs):
        """Make a GET request with full anti-detection measures."""
        headers = {**self.CHROME_HEADERS, **kwargs.pop("headers", {})}
        self._human_delay()
        response = self.session.get(url, headers=headers, **kwargs)
        return response
    def scrape_pages(self, urls):
        """Scrape multiple pages with session management."""
        results = []
        for i, url in enumerate(urls):
            # Rotate session every 10-20 requests
            if i > 0 and i % random.randint(10, 20) == 0:
                self.session_id = self._generate_session_id()
                self._setup_proxy()
            response = self.get(url)
            results.append({
                "url": url,
                "status": response.status_code,
                "html": response.text
            })
        return results
# Usage
client = AntiDetectionClient()
response = client.get("https://target-site.com/products")
print(f"Status: {response.status_code}")

对于Go项目的执行, 代理汉特去SDK 提供内置会话管理和代理旋转。 也见我们的 转到代理指南 用于附加图案。

对于大规模拆卸作业,我们 网络删除代理指南 涵盖基础设施结构和人才库管理战略。

瓶子探测的未来

探测景观继续迅速演变. 一些新兴技术将在今后几年内重新塑造军备竞赛:

在边缘学习机器

Cloudflare和Akamai正在直接在CDN边缘节点部署ML模型,将检测延迟从秒降至毫秒. 这些模型实时处理行为信号,而不是事后进行批量分析.

设备验证 API

谷歌的音乐 Web 环境完整性 (WEI)提议和苹果公司 私人访问托肯斯 目的是让网站核实请求来自真实的、未经修改的设备。 如果得到广泛采用,这将从根本上使浏览器自动化更加困难。

网络级遥测

TCP/IP 堆栈指纹(通过如下工具) 页:1)可以从低级包特性识别操作系统:TTL值,窗口大小,TCP选项顺序. 结合JA4T(TCP指纹),这创造了另一个纯HTTP级的扫瞄无法解决的层.

合作威胁情报

反机器人的供应商越来越多地分享威胁情报。 一个Cloudflare网站被封锁的IP 在所有3000+百万的Cloudflare网站上被标记. 这使得IP的声誉比以往任何时候更具影响,加强了对高质量,符合道德的住宅代理池的需求.

展望未来: 反侦查的未来并不是要击败个人检查——而是要保持每个信号层的整体一致性. 最好的方法是使用合法工具(如真实的住宅代理和真实的浏览器引擎),而不是试图伪造变得越来越难窥探的信号.

关键外卖

  • 多层检测 ——现代反机器人系统同时分析IP声誉,TLS指纹,浏览器指纹,HTTP头,以及行为模式. 你必须处理每一层。
  • IP 类型是基础 ——来自真实ISP的住宅代理提供最强基线信任得分. Datacenter IP从严重的信任赤字开始.
  • TLS 指纹很关键 ——JA3/JA4 指纹可以识别您的HTTP客户端从第一个包中,在应用程序逻辑运行之前. 使用假名库 curl_cffi。 。 。
  • 一致是国王 ——每个信号都必须对齐:用户代理,头像,TLS指纹,Canvas/WebGL输出,时区,语言都必须都讲同样的故事.
  • 行为最重要 ——即使技术设置完美,机器人定时和导航模式也会触发先进系统. 引入类似人类的延迟,会话管理和自然导航流.
  • 使用真实的工具,而不是假的 – 使用真实的浏览器引擎(Playwright/Puppeteer),使用隐形插件和真实的居住IP从 代理汉特。 。 。
  • 坚持道德 ——尊重率限制,机器人.txt,以及服务条件. 合法数据的收集并不需要积极的反侦查;它要求 聪明、设计良好的刮刮作业。 。 。

经常被问到的问题

反机器人系统能探测到住宅代用品吗?

反机器人系统可以检测到一些住宅代用品,特别是那些来自名声差的过度使用池的代用品. 然而,来自代理服务器(ProxyHat)等供应商的高质量住宅代用品从真实的ISP源头IP,由于它们看起来与IP和ASN级的正常用户流量完全相同,因此检测难度很大.

JA3指纹是什么 如何暴露代理?

JA3是基于客户端Hello包创建TLS客户端指纹的方法. 它捕捉TLS版本,密码套件,扩展,椭圆曲线,以及点格式. 如果您的 HTTP 客户端生成一个匹配已知自动化工具的 JA3 散列(类似默认的 Python 请求或无头的 Chrome),反机器人系统即使在使用代理时也可以标记您.

浏览器指纹与基于IP的检测有什么不同?

基于IP的检测分析请求的网络来源(ASN类型,名声,黑名单),而浏览器指纹检查客户端环境本身:Canvas渲染,WebGL能力,AudioContext输出,安装字体,屏幕分辨率,以及导航属性. 即使IP地址干净,浏览器指纹也能识别自动化.

机器人检测中的行为分析是什么?

行为分析监测一个用户在一段时间内如何与一个页面互动. 反机器人系统跟踪鼠标运动,滚动速度,按键动态,点击模式,以及页面导航序列. 博茨一般显示非自然统一的时间,鼠标零移动,即时卷轴,以及人类从未产生的可预测的导航路径.

避免反机器人检测的最佳代理类型是什么?

住宅代理对检测提供了最强的阻力,因为他们使用真实的ISP指定IP地址. 结合适当的TLS指纹管理,现实的浏览器指纹,以及类似人类的行为模式,住宅代用品甚至可以可靠地通过Akamai,Cloudflare,PerimeterX等先进的反机器人系统.

准备开始了吗?

通过AI过滤访问148多个国家的5000多万个住宅IP。

查看价格住宅代理
← 返回博客