بازگشت به وبلاگ

مرورگرهای مخفی ۲۰۲۶: ۶۵۱ رأی بنچمارک — چه کسی واقعاً موفق می‌شود

Camoufox در یک مطالعه در وسط جدول، و در دیگری - در میان بهترین‌ها. دو بنچمارک سال 2026 با روش باز (651 حکم، 31 هدف) را بررسی می‌کنیم، توضیح می‌دهیم که چرا nodriver در اهداف زنده تحت Cloudflare پیروز می‌شود، و لایه تشخیصی را نشان می‌دهیم که هیچ‌یک از آن‌ها را اندازه‌گیری نمی‌کند - شهرت IP.

📅۲۲ مرداد ۱۴۰۵
مرورگرهای مخفی ۲۰۲۶: ۶۵۱ رأی بنچمارک — چه کسی واقعاً موفق می‌شود
```html

فهرست ابزارهای مخفی برای خودکارسازی مرورگر در سال ۲۰۲۶ به ده‌ها نام افزایش یافته است و هر دومین مخزن وعده «غیر قابل شناسایی» بودن را می‌دهد. نمی‌توان این را با چشم بررسی کرد: Camoufox در یک تحقیق در میانه جدول قرار می‌گیرد و در تحقیق دیگر به جمع چهار بهترین‌ها می‌پیوندد. بیایید دو بنچمارک مستقل از سال ۲۰۲۶ با روش‌های باز را بررسی کنیم، به اعداد واقعی نگاه کنیم و — مهم‌تر از همه — بفهمیم که کدام لایه شناسایی اصلاً اندازه‌گیری نمی‌شود.

چه چیزی اندازه‌گیری شده است: دو بنچمارک، دو داور مختلف

تحقیق اول — بنچمارک ضد شناسایی ایان پترسون (منتشر شده در ۱۸ مه ۲۰۲۶). هفت ابزار بر روی ۳۱ هدف در چهار دسته آزمایش شدند: پنل‌های شناسایی JS، نقاط پایانی TLS، سایت‌های زنده تحت Cloudflare و دیگر ضد ربات‌ها، و همچنین پلتفرم‌های محتوایی با بار بالا که دارای «فینگرپرینتینگ» خاموش هستند. نتیجه — ۶۵۱ حکم: ۲۱۷ سلول با سه اجرای مستقل، همه در ۵ ساعت و ۱۱ دقیقه در یک شب انجام شد. آزمایش‌ها در حالت headed با یک IP مقیم (Mac Studio، بریتیش کلمبیا) انجام شد.

دومین تحقیق — بنچمارک مخفی The Web Scraping Club (۲۳ ژوئیه ۲۰۲۶): ۱۵ کتابخانه Python منبع باز، از جمله وصله‌های Playwright، ابزارهای بومی CDP و ساخت‌های سفارشی مرورگرها. نقش داور خارجی را deviceandbrowserinfo.com با تجزیه JSON و پرچم isBot ایفا کرد؛ سرعت پروب داخلی با حکم خارجی بر روی ۹۲٪ از ۱۳ ابزار بررسی شده مطابقت داشت.

تفاوت کلیدی: بنچمارک اول به اهداف زنده تولیدی ضربه می‌زند (یعنی به ترکیب «فینگرپرینت + شهرت IP + رفتار سایت»)، در حالی که دومی به فینگرپرینت JS خالص در شرایط آزمایشگاهی می‌پردازد و عمداً فینگرپرینتینگ حمل و نقل، زمان‌بندی‌ها و شهرت پروکسی را از دامنه خود خارج کرده است. از این رو، اختلاف در رهبران به وجود می‌آید.

جدول: چه کسی چقدر در اهداف زنده پیش رفت

نتایج پترسون برای ۳۱ هدف (OK — دسترسی به دست آمده، gated — چالش بینابینی، blocked — رد سخت بدون شانس عبور از بررسی):

  • nodriver (Chrome سیستم ۱۴۸) — ۲۸ OK، ۳ gated، ۰ blocked
  • CloakBrowser (Chromium ۱۴۵) — ۲۶ OK، ۳ gated، ۲ blocked
  • curl_cffi 0.15.0 (impersonate=chrome, HTTP-only) — ۲۶ OK، ۳ gated، ۲ blocked
  • Patchright (channel=chrome, Chrome ۱۴۸) — ۲۵ OK، ۳ gated، ۳ blocked
  • Camoufox (Firefox ۱۳۵.۰.۱-beta.۲۴) — ۲۵ OK، ۳ gated، ۳ blocked
  • vanilla Playwright (Chromium ۱۴۷) — ۲۴ OK، ۲ gated، ۵ blocked
  • rebrowser-playwright (Chromium ۱۳۶) — ۲۴ OK، ۲ gated، ۵ blocked

اختلاف بین رهبر و Playwright پایه‌ای تنها پنج هدف است. اما آنچه جالب است، نه فاصله، بلکه این است که کجا دقیقاً این فاصله به وجود می‌آید. در canadianinsider و glassdoor تنها nodriver عبور کرد (در glassdoor — از طریق چالش نرم)، در google-search vanilla، Patchright و rebrowser رد شدند، در stackoverflow — vanilla و rebrowser. و در dev.to تنها ابزاری که مسدود شد — Camoufox بود.

در بنچمارک دوم با داور سخت‌گیر تنها چهار ابزار از پانزده عبور کردند: camoufox، CloakBrowser، RayoBrowse و scrapling. همان Camoufox که در آزمایش زنده به dev.to برخورد کرد، در آزمایشگاه در فینگرپرینت JS در میان بهترین‌ها قرار گرفت — زیرا در آنجا شهرت انباشته امضای Firefox بر روی یک IP در نظر گرفته نشده بود.

چرا nodriver برنده است: مشکل در پنهان‌سازی نیست، بلکه در پروتکل است

وصله‌هایی مانند playwright-stealth و rebrowser سیگنال‌های ایستا را اصلاح می‌کنند: ویژگی‌های navigator، canvas، WebGL، و هندسه صفحه نمایش. مشکل این است که ضد ربات‌های مدرن تنها آنها را نمی‌گیرند، بلکه خود واقعیت کنترل مرورگر از طریق پروتکل خودکارسازی را نیز شناسایی می‌کنند. وکتور کلاسیک — فراخوانی Runtime.enable: اکثر کتابخانه‌ها هنگام راه‌اندازی آن را فراخوانی می‌کنند و Cloudflare و DataDome این را شناسایی می‌کنند.

nodriver به طور مستقیم Chrome را از طریق CDP کنترل می‌کند، بدون واسطه Playwright: هیچ شیمی در control-plane وجود ندارد، هیچ توالی ابتدایی Runtime.enable وجود ندارد، و هیچ middleware بین کد Python و فرآیند مرورگر وجود ندارد. او خود تصمیم می‌گیرد که کدام دستورات CDP را ارسال کند. از این رو، هیچ مسدودیت سختی وجود ندارد: ترمیم فینگرپرینت‌های ایستا بی‌فایده است اگر شما از طریق کانال کنترل قابل مشاهده باشید.

Camoufox مسیر دیگری را طی می‌کند — این یک فورک از Firefox با اصلاحات در سطح C است که فینگرپرینت-API را با مقادیر تصادفی توافق شده جایگزین می‌کند. او در برابر فینگرپرینتینگ پیچیده قوی است، اما با سرعت و منابع هزینه می‌کند، و امضای Firefox به خودی خود در پس‌زمینه Chrome غالب قابل مشاهده است. Patchright — محتاط‌ترین سازش: جایگزینی drop-in برای Playwright، که نشت‌های CDP را در شروع وصله می‌کند و می‌تواند Chrome سیستم ۱۴۸ را بدون بازنویسی کد هدایت کند.

لایه‌ای که هیچ بنچمارکی اندازه‌گیری نمی‌کند

اینجا مهم‌ترین نکته برای عمل آغاز می‌شود. هر دو تحقیق به وضوح مرز دامنه خود را مشخص می‌کنند و عبارات تقریباً مشابه هستند. نویسنده بنچمارک دوم می‌نویسد که شهرت پروکسی مربوط به IP شماست، نه ابزار شما، و به همین دلیل آن را از دامنه خارج کرده است. نویسنده اول این را از طرف دیگر توضیح می‌دهد: پروکسی تنها IP منبع را بازنویسی می‌کند، در حالی که handshake TLS، ترتیب فریم‌های HTTP/2، ویژگی‌های navigator و فینگرپرینت canvas در یک ماشین واقعی به وجود می‌آیند.

از این نتیجه‌گیری می‌شود که باید به صورت جداگانه نوشته شود: ابزار و IP لایه‌های شناسایی مختلفی را می‌پوشانند و یکی دیگری را جبران نمی‌کند. بررسی مرورگرهای مخفی Scrapfly از ۱۰ اوت ۲۰۲۶ نیمه متقارن را بیان می‌کند: فینگرپرینت خالص بر روی IP داده‌مرکزی علامت‌گذاری شده همچنان مسدود می‌شود.

علاوه بر این، ترکیب ناموفق بدتر از عدم وجود آن عمل می‌کند. پترسون این را به عنوان نیاز به سازگاری پروفایل توصیف می‌کند: سرور Linux در پشت پروکسی مقیم همچنان مرورگری با فرم Linux را تبلیغ می‌کند — و دقیقاً این تناقض است که دروازه‌ها آن را علامت‌گذاری می‌کنند. اثر معکوس نیز مستند شده است: در آزمایش‌های خارجی، چرخش IP به طور قابل توجهی نتایج Camoufox را بهبود می‌بخشید و اجازه نمی‌داد شهرت در برابر امضای قابل شناسایی Firefox در ورودهای مکرر از یک آدرس انباشته شود.

معنای عملی ساده است. اگر شما آزمایش‌ها را از یک آدرس ثابت اجرا می‌کنید، شما به اندازه ابزار، فرسودگی IP خاص را اندازه‌گیری می‌کنید. اهداف زنده مانند پلتفرم‌های محافظت شده توسط Cloudflare ترکیب را به طور کامل ارزیابی می‌کنند، بنابراین برای سناریوهای با چندین جلسه، منطقی است که آنها را در آدرس‌های مختلف پخش کنید — پروکسی‌های مقیم برای اهدافی که شهرت «خانگی» آدرس مهم است و داده‌مرکزی‌ها برای جایی که بررسی IP ملایم‌تر است و سرعت حیاتی است. اینکه چگونه لایه حمل و نقل خود شناسایی می‌شود و چرا curl_cffi اصلاً در جدول به اندازه مرورگرها قرار گرفته است — در مطلبی درباره دور زدن فینگرپرینت TLS/JA4 از طریق curl_cffi بررسی شده است.

زنده‌مانی پروژه مهم‌تر از جایگاه در جدول است

هر ابزار مخفی منبع باز دیر یا زود «نشت» می‌کند و نیاز به ترمیم دارد و هزینه نگهداری در مقیاس به سرعت افزایش می‌یابد. بنابراین فعالیت مخزن — همانند درصد عبور — یک معیار انتخاب است. داده‌های GitHub در ۱۳ اوت ۲۰۲۶:

  • Camoufox — ۱۱ ۰۵۷ ستاره، آخرین پست ۱۲.۰۸.۲۰۲۶: پروژه زنده و به‌روز است.
  • Scrapling — ۷۳ ۷۰۵ ستاره، پست ۱۱.۰۸.۲۰۲۶: محبوب‌ترین در فهرست، اما این یک فریم‌ورک اسکرپینگ به طور کامل است، نه تنها لایه مخفی.
  • Patchright — ۴ ۰۷۶ ستاره، پست ۰۵.۰۸.۲۰۲۶: به طور فعال نگهداری می‌شود، که بنچمارک نیز این را تأیید می‌کند.
  • nodriver — ۴ ۶۴۹ ستاره، اما آخرین پست ۱۳.۰۵.۲۰۲۶. برنده آزمایش زنده کمتر از سایرین به‌روز می‌شود.
  • zendriver — ۱ ۳۹۰ ستاره، پست ۰۹.۰۸.۲۰۲۶. فورک nodriver، ایجاد شده برای رفع اشکالات بحرانی و پذیرش مشارکت‌های جامعه.

به طور جداگانه — درباره بازنده‌ها. rebrowser-playwright در بنچمارک بر روی Chromium ۱۳۶ بود و آخرین کامیت آن به سپتامبر ۲۰۲۴ برمی‌گردد: در واقع پروژه رها شده است، از این رو پنج مسدودیت سخت. در CloakBrowser، ساخت برای macOS دو ماه بر روی Chromium ۱۴۵ متوقف شد، در حالی که نسخه‌های Linux و Windows به‌روز شدند — نسخه قدیمی موتور به خودی خود یک سیگنال می‌شود.

چه چیزی را برای سناریوی خود انتخاب کنید

  1. شما قبلاً کدی بر روی Playwright نوشته‌اید. Patchright را بگیرید: این یک جایگزینی برای وارد کردن است، نه بازنویسی پروژه، و او تنها یکی از فورک‌های وصله‌ای است که بنچمارک آن را به‌طور فعال نگهداری شده می‌نامد. در نظر داشته باشید که او در آزمایش google-search عبور نکرده است.
  2. حداکثر نیاز در اهداف سخت تحت Cloudflare/DataDome. nodriver یا فورک زنده‌اش zendriver — تنها رویکردی که اثر فینگرپرینت پروتکل خودکارسازی را از بین می‌برد. قیمت — فقط Chrome، API جوان‌تر و امکانات آماده کمتری.
  3. تهدید اصلی — فینگرپرینتینگ عمیق JS. Camoufox با جایگزینی در سطح موتور. حتماً در کنار چرخش آدرس‌ها: بدون آن، امضای Firefox به سرعت شهرت منفی را بر روی یک IP انباشته می‌کند.
  4. داده‌ها از طریق HTTP بدون اجرای JS ارسال می‌شوند. curl_cffi با impersonate — ۲۶ از ۳۱ هدف بدون مرورگر به طور کلی. ارزان‌ترین گزینه از نظر منابع، اگر صفحه نیاز به رندرینگ نداشته باشد.
  5. به شما «۹۸٪ عبور» می‌فروشند. چنین اعدادی (به عنوان مثال، Scrapfly ۹۸٪ در برابر Cloudflare Bot Management و ۹۶٪ در برابر DataDome) — این یک معیار فروشنده بر روی زیرساخت و مجموعه آدرس‌های اوست، نه یک بنچمارک قابل تولید. مقایسه آن با جداول باز به طور مستقیم نادرست است.

و اصل کلی: ابزار را بر روی سایت‌های هدف خود آزمایش کنید، نه بر اساس جدول‌های جمع‌آوری شده دیگران. اختلاف پنج هدف بین رهبر و Playwright پایه‌ای به این معنی است که برای نیمی از وظایف، تفاوت اصلاً نمایان نمی‌شود — اما در یک glassdoor یا canadianinsider خاص، انتخاب همه چیز را تعیین می‌کند. اینکه دقیقاً چه سیستم‌هایی بر روی اهداف شما قرار دارند و منطق آنها چگونه متفاوت است، مفید است که از قبل درک کنید: درباره این موضوع — مقایسه ضد ربات‌ها ۲۰۲۶: Cloudflare، DataDome، Akamai، Kasada.

نتیجه‌گیری

در اهداف زنده در سال ۲۰۲۶، nodriver پیشتاز است — هیچ مسدودیت سختی از ۳۱ هدف، زیرا او هیچ نشانه‌ای از پروتکل خودکارسازی باقی نمی‌گذارد. در فینگرپرینت خالص JS در آزمایشگاه، Camoufox، CloakBrowser، RayoBrowse و scrapling پیشتاز هستند. در اینجا تناقضی وجود ندارد: بنچمارک‌ها لایه‌های مختلفی را اندازه‌گیری می‌کنند و انتخاب شما بستگی به این دارد که کدام لایه به شما ضربه می‌زند.

اما هیچ‌یک از این ابزارها به تنهایی مشکل را حل نمی‌کند. مرورگر مخفی مسئول این است که ماشین شما چگونه به نظر می‌رسد؛ پروکسی مسئول این است که از کجا آمده‌اید و این آدرس قبلاً چه کارهایی انجام داده است. دروازه‌ها هم فینگرپرینت بد و هم IP کثیف را شناسایی می‌کنند و بیشتر از همه — تناقض بین آنها را. ترکیب را با آگاهی جمع‌آوری کنید: ابزار برای نوع شناسایی، آدرس برای نوع هدف، و نتیجه را بر روی صفحات خود آزمایش کنید، نه بر روی اسکرین‌شات جدول دیگران.

```