العودة إلى المدونة

كيفية تجاوز الحظر باستخدام بصمة HTTP/2: طرق للتجريف والتحكيم

تقوم المواقع الحديثة بحظر الطلبات عبر بصمة HTTP/2. نناقش طرق التهرب من خلال curl-impersonate وPlaywright ومتصفحات مكافحة الكشف مع بروكسيات صحيحة.

📅١٥ رجب ١٤٤٧ هـ
```html

تعلمت أنظمة مكافحة الاحتيال الحديثة تحديد الأتمتة ليس فقط من خلال عناوين IP وملفات تعريف الارتباط، ولكن أيضًا من خلال بصمة HTTP/2 الفريدة. تقوم أنظمة الحماية مثل Cloudflare و Akamai و DataDome بتحليل ترتيب الرؤوس وأولويات التدفقات ومعلمات الاتصال - وتقوم بحظر الطلبات من المكتبات القياسية مثل requests و axios أو curl. في هذه المقالة، سنستعرض كيفية عمل بصمة HTTP/2 وكيفية تجاوزها لجمع البيانات من الأسواق، والأتمتة في وسائل التواصل الاجتماعي، والتحكيم في حركة المرور.

ما هي بصمة HTTP/2 وكيف تعمل

بصمة HTTP/2 (بصمة HTTP/2) هي مجموعة فريدة من الخصائص التي تتشكل عند إنشاء اتصال بين العميل والخادم عبر بروتوكول HTTP/2. على عكس HTTP/1.1، حيث يتم إرسال الطلبات بشكل متسلسل، يستخدم HTTP/2 التعددية، وأولوية التدفقات، وضغط الرؤوس عبر خوارزمية HPACK. كل هذه المعلمات تخلق "توقيعًا" فريدًا للعميل.

تشمل المكونات الرئيسية لبصمة HTTP/2:

  • إطار SETTINGS - معلمات الاتصال (حجم النافذة، الحد الأقصى لحجم الإطار، حدود التدفقات)
  • قيم WINDOW_UPDATE - قيم تحديث نافذة نقل البيانات
  • إطارات الأولوية - أولويات التدفقات واعتمادياتها
  • ترتيب الرؤوس - ترتيب رؤوس HTTP في الرؤوس الزائفة (:method، :path، :authority)
  • التفاوض ALPN - معلمات التفاوض على البروتوكول على مستوى TLS
  • تقديم الاتصال - السطر الأول من الاتصال

كل متصفح (Chrome، Firefox، Safari) وكل مكتبة (Python requests، Node.js axios، Go net/http) ترسل هذه المعلمات بترتيب مختلف وقيم مختلفة. على سبيل المثال، يقوم Chrome 120 بإرسال SETTINGS مع المعلمات HEADER_TABLE_SIZE=65536، ENABLE_PUSH=0، MAX_CONCURRENT_STREAMS=1000، بينما قد ترسل مكتبة Python httpx قيمًا مختلفة تمامًا.

مثال على إطار SETTINGS من Chrome 120:
SETTINGS_HEADER_TABLE_SIZE: 65536
SETTINGS_ENABLE_PUSH: 0
SETTINGS_MAX_CONCURRENT_STREAMS: 1000
SETTINGS_INITIAL_WINDOW_SIZE: 6291456
SETTINGS_MAX_HEADER_LIST_SIZE: 262144

مثال على إطار SETTINGS من Python httpx:
SETTINGS_HEADER_TABLE_SIZE: 4096
SETTINGS_ENABLE_PUSH: 1
SETTINGS_MAX_CONCURRENT_STREAMS: 100
SETTINGS_INITIAL_WINDOW_SIZE: 65535

تقوم أنظمة مكافحة الاحتيال بجمع إحصائيات البصمات من المستخدمين الحقيقيين ومقارنتها مع الطلبات الواردة. إذا كانت البصمة لا تتطابق مع أي متصفح معروف - يتم حظر الطلب كونه مشبوهًا.

لماذا تقوم المواقع بحظر بصمة HTTP/2

أصبحت حظرات بصمة HTTP/2 ظاهرة شائعة في عامي 2022-2023، عندما أدركت أنظمة مكافحة الاحتيال أن الطرق التقليدية للحماية (التحقق من User-Agent، ملفات تعريف الارتباط، عناوين IP) يمكن تجاوزها بسهولة. تعلمت أدوات جمع البيانات استبدال الرؤوس، واستخدم المحكمون البروكسيات، وقام الروبوتات بمحاكاة سلوك المستخدمين. لكن تغيير بصمة HTTP/2 أصعب - فهي تتشكل على مستوى منخفض من مكدس الشبكة.

تشمل الأسباب الرئيسية لتطبيق بصمة HTTP/2:

  • مكافحة جمع البيانات - تفقد الأسواق (Wildberries، Ozon، Amazon) ملايين في التجسس على أسعار المنافسين
  • حماية منصات الإعلانات - تقوم Facebook Ads و Google Ads بحظر الأتمتة لمنع الاحتيال
  • منع السكالبيغ - تحارب مواقع بيع التذاكر والسلع المحدودة الروبوتات
  • الحماية من هجمات DDoS - تساعد بصمة HTTP/2 في تمييز حركة المرور الشرعية عن شبكات الروبوتات
  • الامتثال لرخص API - ترغب بعض الخدمات في إجبار المستخدمين على استخدام APIs مدفوعة بدلاً من جمع البيانات

قامت Cloudflare، واحدة من أكبر مزودي الحماية، في عام 2023 بتطبيق التحقق من بصمة HTTP/2 في إدارة الروبوتات الخاصة بها. وفقًا لبياناتهم، أدى ذلك إلى تقليل عدد الهجمات الناجحة لجمع البيانات بنسبة 67%. تستخدم Akamai و DataDome تقنيات مشابهة.

مهم: حتى إذا كنت تستخدم User-Agent صحيح وبروكسيات سكنية عالية الجودة، يمكن حظر الطلب بسبب عدم تطابق بصمة HTTP/2. على سبيل المثال، إذا كنت ترسل طلبًا مع User-Agent من Chrome 120، ولكن مع بصمة من Python requests - ستحدد النظام ذلك على الفور.

كيف تحدد أنظمة مكافحة الاحتيال البصمة

تستخدم أنظمة مكافحة الاحتيال الحديثة فحصًا متعدد المستويات لاتصالات HTTP/2. تحدث عملية تحديد البصمة قبل أن يرسل الخادم صفحة HTML - على مستوى إنشاء اتصال TCP و TLS.

مراحل تحديد البصمة:

  1. تحليل TLS handshake - فحص ترتيب مجموعات التشفير، والامتدادات المدعومة لـ TLS (ALPN، SNI، supported_versions)، وإصدار TLS ومعلمات المنحنيات البيانية. يُطلق على ذلك بصمة JA3.
  2. تقديم اتصال HTTP/2 - فحص السطر الأول "PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n" وأول إطار SETTINGS.
  3. التحقق من إطار SETTINGS - مقارنة المعلمات مع قاعدة بيانات المتصفحات والمكتبات المعروفة. إذا لم تتطابق SETTINGS مع User-Agent - يتم حظر الطلب.
  4. تحليل الأولويات والاعتماديات - فحص أولويات التدفقات. على سبيل المثال، يقوم Chrome بإنشاء شجرة اعتماديات التدفقات بطريقة معينة، بينما يقوم Firefox بإنشائها بطريقة أخرى.
  5. التحقق من ترتيب الرؤوس - تحليل ترتيب الرؤوس الزائفة (:method، :authority، :scheme، :path) والرؤوس العادية (user-agent، accept، accept-encoding).
  6. أنماط WINDOW_UPDATE - فحص القيم وتكرار إرسال إطارات WINDOW_UPDATE.

تستخدم Cloudflare تقنية خاصة بها Akamai2، التي تنشئ "بصمة البصمة" - تجزئة لجميع معلمات اتصال HTTP/2. تتم مقارنة هذه التجزئة مع قاعدة بيانات تحتوي على ملايين من البصمات المعروفة. إذا لم يكن هناك تطابق وكانت البصمة تبدو مشبوهة - يتم تفعيل فحص إضافي من خلال تحدي JavaScript أو الحظر.

مثال على تحديد التزوير:

ترسل طلبًا مع User-Agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/120.0.0.0"، ولكنك تستخدم مكتبة Python httpx. ترى النظام أن User-Agent يشير إلى Chrome 120، لكن إطار SETTINGS يحتوي على معلمات httpx. عدم التطابق = حظر. تصل نسبة اكتشاف مثل هذه التزويرات في Cloudflare إلى 99.2%.

طرق تجاوز بصمة HTTP/2

هناك عدة طرق لتجاوز الحظر بناءً على بصمة HTTP/2، كل منها له مزاياه وقيوده. يعتمد اختيار الطريقة على المهمة: جمع البيانات، الأتمتة في وسائل التواصل الاجتماعي، التحكيم في حركة المرور أو الاختبار.

الطريقة الصعوبة الفعالية الاستخدام
curl-impersonate متوسطة 95% جمع البيانات من API، جمع البيانات
Playwright/Puppeteer مع التصحيحات عالية 90% الأتمتة باستخدام JS
متصفحات مكافحة الكشف منخفضة 98% التحكيم، تعدد الحسابات
متصفحات حقيقية عبر Selenium متوسطة 85% أتمتة بسيطة
مكتبات HTTP/2 مع إعدادات مخصصة عالية جدًا 70-80% مهام محددة

المبادئ الأساسية لتجاوز ناجح:

  • مطابقة بصمة HTTP/2 و User-Agent - إذا كنت تحاكي Chrome، يجب أن تكون البصمة من Chrome بنفس الإصدار
  • استخدام بروكسيات عالية الجودة - حتى بصمة صحيحة لن تنقذك إذا كان IP في القائمة السوداء
  • تدوير البصمات - لا تستخدم نفس البصمة لآلاف الطلبات
  • محاكاة سلوك المستخدم - تأخيرات بين الطلبات، أنماط تنقل واقعية
  • تحديث البصمات - يتم تحديث المتصفحات كل 4-6 أسابيع، ويجب تحديث البصمة أيضًا

استخدام curl-impersonate لجمع البيانات

curl-impersonate هو إصدار معدل من curl، يحاكي بصمة HTTP/2 لمتصفحات شهيرة على مستوى منخفض. تم تطوير المشروع خصيصًا لتجاوز أنظمة مكافحة الاحتيال ويدعم بصمات Chrome و Firefox و Safari و Edge من إصدارات مختلفة.

مزايا curl-impersonate لجمع البيانات:

  • محاكاة دقيقة لبصمة HTTP/2 - SETTINGS، Priority، WINDOW_UPDATE مطابقة تمامًا للمتصفح الحقيقي
  • دعم بصمة TLS (JA3) - تحاكي ليس فقط HTTP/2، ولكن أيضًا TLS handshake
  • استهلاك منخفض للموارد - على عكس المتصفحات بدون واجهة، يعمل curl بسرعة
  • تكامل سهل - يمكن استخدامه كبديل لـ curl العادي في السكربتات
  • تحديثات منتظمة - يتم تحديث البصمات لتتناسب مع الإصدارات الجديدة من المتصفحات

تثبيت curl-impersonate:

# التثبيت على Ubuntu/Debian
wget https://github.com/lwthiker/curl-impersonate/releases/download/v0.6.1/curl-impersonate-v0.6.1.x86_64-linux-gnu.tar.gz
tar -xzf curl-impersonate-v0.6.1.x86_64-linux-gnu.tar.gz
sudo cp curl-impersonate-chrome /usr/local/bin/

# التحقق من التثبيت
curl-impersonate-chrome --version

مثال على الاستخدام مع بروكسي:

# محاكاة Chrome 120 مع بروكسي
curl-impersonate-chrome120 \
  --proxy http://username:password@proxy.example.com:8080 \
  -H "Accept-Language: ru-RU,ru;q=0.9,en;q=0.8" \
  https://www.wildberries.ru/catalog/0/search.aspx?search=ноутбук

# محاكاة Firefox 120
curl-impersonate-ff120 \
  --proxy socks5://username:password@proxy.example.com:1080 \
  https://www.ozon.ru/api/composer-api.bx/page/json/v2?url=/category/noutbuki

لمطوري Python، هناك مكتبة curl_cffi، التي توفر تغليف Python حول curl-impersonate:

from curl_cffi import requests

# التثبيت: pip install curl_cffi

# طلب مع محاكاة Chrome 120
response = requests.get(
    'https://www.wildberries.ru/catalog/0/search.aspx?search=ноутбук',
    impersonate='chrome120',
    proxies={
        'http': 'http://username:password@proxy.example.com:8080',
        'https': 'http://username:password@proxy.example.com:8080'
    },
    headers={
        'Accept-Language': 'ru-RU,ru;q=0.9'
    }
)

print(response.status_code)
print(response.text[:500])

يعتبر curl-impersonate فعالًا بشكل خاص لجمع البيانات من الأسواق والمواقع التي تستخدم Cloudflare، حيث أنه يحاكي ليس فقط HTTP/2، ولكن أيضًا بصمة TLS. في الاختبارات على Wildberries و Ozon، تصل نسبة نجاح الطلبات إلى 95% عند استخدام بروكسيات سكنية عالية الجودة.

إعداد Playwright و Puppeteer مع بصمة صحيحة

Playwright و Puppeteer هما أدوات شائعة لأتمتة المتصفحات، لكنهما يتم تحديدهما افتراضيًا من قبل أنظمة مكافحة الاحتيال بسبب العلامات المميزة لوضع عدم الواجهة وبصمة HTTP/2 المحددة. لتجاوز الحظر، تحتاج إلى إعداد إضافي.

مشكلات Playwright/Puppeteer افتراضيًا:

  • يتم تحديد وضع عدم الواجهة من خلال navigator.webdriver، وعدم وجود ملحقات وأحجام نوافذ محددة
  • تختلف بصمة HTTP/2 عن Chrome العادي بسبب ميزات بروتوكول DevTools
  • عدم وجود بعض واجهات برمجة التطبيقات (يمكن أن تختلف بصمة WebGL و Canvas)
  • تنفيذ الإجراءات بشكل متزامن - تقوم الروبوتات بتنفيذ الإجراءات بسرعة كبيرة وبشكل موحد

الحل: استخدام playwright-extra و puppeteer-extra مع الملحقات

# التثبيت لـ Playwright
npm install playwright-extra puppeteer-extra-plugin-stealth

# أو لـ Python
pip install playwright-stealth

مثال على إعداد Playwright مع تجاوز البصمة (Node.js):

const { chromium } = require('playwright-extra');
const stealth = require('puppeteer-extra-plugin-stealth')();

(async () => {
  const browser = await chromium.launch({
    headless: false, // أو true مع تصحيحات إضافية
    proxy: {
      server: 'http://proxy.example.com:8080',
      username: 'user',
      password: 'pass'
    },
    args: [
      '--disable-blink-features=AutomationControlled',
      '--disable-dev-shm-usage',
      '--no-sandbox',
      '--disable-setuid-sandbox',
      '--disable-web-security',
      '--disable-features=IsolateOrigins,site-per-process'
    ]
  });

  const context = await browser.newContext({
    viewport: { width: 1920, height: 1080 },
    userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
    locale: 'ru-RU',
    timezoneId: 'Europe/Moscow',
    geolocation: { latitude: 55.7558, longitude: 37.6173 },
    permissions: ['geolocation']
  });

  // تصحيحات لتجاوز التعرف
  await context.addInitScript(() => {
    Object.defineProperty(navigator, 'webdriver', {
      get: () => undefined
    });
    
    // محاكاة الملحقات
    Object.defineProperty(navigator, 'plugins', {
      get: () => [1, 2, 3, 4, 5]
    });
    
    // محاكاة اللغات
    Object.defineProperty(navigator, 'languages', {
      get: () => ['ru-RU', 'ru', 'en-US', 'en']
    });
  });

  const page = await context.newPage();
  
  // الانتقال إلى الموقع مع تأخير
  await page.goto('https://www.wildberries.ru/', {
    waitUntil: 'networkidle'
  });
  
  // محاكاة حركة الماوس
  await page.mouse.move(100, 100);
  await page.waitForTimeout(Math.random() * 2000 + 1000);
  
  await browser.close();
})();

لمطوري Python، هناك مكتبة playwright-stealth:

from playwright.sync_api import sync_playwright
from playwright_stealth import stealth_sync

with sync_playwright() as p:
    browser = p.chromium.launch(
        headless=False,
        proxy={
            "server": "http://proxy.example.com:8080",
            "username": "user",
            "password": "pass"
        }
    )
    
    context = browser.new_context(
        viewport={'width': 1920, 'height': 1080},
        user_agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
        locale='ru-RU',
        timezone_id='Europe/Moscow'
    )
    
    page = context.new_page()
    stealth_sync(page)  # تطبيق تصحيحات stealth
    
    page.goto('https://www.wildberries.ru/')
    page.wait_for_timeout(3000)
    
    browser.close()

من المهم أن نفهم أنه حتى مع هذه التصحيحات، لا توفر Playwright/Puppeteer ضمانًا بنسبة 100% لتجاوز أنظمة مكافحة الاحتيال المتقدمة. يمكن أن تحدد إدارة الروبوتات في Cloudflare و DataDome الأتمتة من خلال تحليل السلوك (سرعة الإجراءات، أنماط النقر، حركة الماوس). بالنسبة للمهام الحرجة، يُنصح باستخدام متصفحات مكافحة الكشف.

متصفحات مكافحة الكشف لتجاوز البصمة

متصفحات مكافحة الكشف هي حلول متخصصة لتعدد الحسابات وتجاوز البصمة، يستخدمها المحكمون، والمتخصصون في وسائل التواصل الاجتماعي، ومتخصصو التجارة الإلكترونية. على عكس Playwright، فإنها توفر واجهة مستخدم جاهزة وتقوم تلقائيًا بتغيير جميع معلمات البصمة، بما في ذلك HTTP/2.

متصفحات مكافحة الكشف الشائعة مع دعم بصمة HTTP/2:

المتصفح تغيير HTTP/2 السعر الاستخدام
Dolphin Anty نعم، تلقائيًا من $89/شهر تحكيم Facebook/TikTok
AdsPower نعم، تلقائيًا من $9/شهر التجارة الإلكترونية، وسائل التواصل الاجتماعي
Multilogin نعم، متقدمة من €99/شهر تحكيم احترافي
GoLogin نعم، أساسية من $24/شهر المبتدئين في التحكيم
Octo Browser نعم، تلقائيًا من €29/شهر تعدد الحسابات على وسائل التواصل الاجتماعي

كيف تقوم متصفحات مكافحة الكشف بتغيير بصمة HTTP/2:

  • تعديل Chromium على مستوى المصدر - تغيير معلمات HTTP/2 في كود المتصفح قبل التجميع
  • تغيير ديناميكي لـ SETTINGS - إنشاء معلمات فريدة ولكن واقعية لكل ملف تعريف
  • مزامنة مع بصمة Canvas/WebGL - جميع معلمات البصمة متوافقة مع بعضها البعض
  • قواعد بصمات حقيقية - استخدام بصمات من أجهزة ومتصفحات حقيقية
  • تحديث تلقائي - يتم تحديث البصمات عند إصدار إصدارات جديدة من المتصفحات

إعداد Dolphin Anty لتجاوز بصمة HTTP/2:

  1. إنشاء ملف تعريف متصفح جديد → اختيار نظام التشغيل (Windows/macOS/Linux)
  2. في قسم "البصمة"، اختر "بصمة حقيقية" أو "إنشاء جديدة"
  3. حدد User-Agent - سيقوم المتصفح تلقائيًا باختيار بصمة HTTP/2 المناسبة
  4. في إعدادات البروكسي، أضف بروكسيات موبايل للعمل مع Facebook/Instagram أو سكنية لمهام أخرى
  5. قم بتفعيل خيار "استبدال WebRTC" لاستبدال IP الحقيقي
  6. في قسم "Canvas"، اختر وضع "Noise" لبصمة Canvas فريدة
  7. احفظ الملف الشخصي وابدأ - سيكون للمتصفح بصمة HTTP/2 فريدة

تظهر متصفحات مكافحة الكشف أفضل النتائج في تجاوز البصمة - تصل نسبة النجاح إلى 98% مع الإعداد الصحيح. إنها فعالة بشكل خاص للعمل مع إعلانات Facebook و TikTok و Instagram، حيث تكون الحظرات بناءً على البصمة أكثر صرامة.

نصيحة للمحكمين:

عند إنشاء حسابات إعلانات Facebook، استخدم المجموعة: Dolphin Anty + بروكسيات موبايل + بصمة فريدة لكل حساب. لا تستخدم نفس البصمة لعدة حسابات - حيث تربط Facebook الحسابات بناءً على البصمة وقد تحظر المجموعة بأكملها (chain-ban). قم بتغيير البصمة مع كل إنشاء ملف تعريف جديد.

دور البروكسي في تجاوز حظر HTTP/2

بصمة HTTP/2 الصحيحة هي نصف النجاح فقط. حتى مع بصمة مثالية، سيتم حظر الطلب إذا كان عنوان IP في القائمة السوداء أو ينتمي إلى مركز بيانات معروف. تلعب البروكسيات دورًا حاسمًا في تجاوز البصمة.

لماذا تعتبر البروكسيات مهمة لتجاوز حظر HTTP/2:

  • إخفاء IP الحقيقي - تتحقق أنظمة مكافحة الاحتيال ليس فقط من البصمة، ولكن أيضًا من سمعة IP
  • مطابقة جغرافية - إذا كانت البصمة من Windows مع إعداد روسي، وكان IP من الولايات المتحدة - فهذا مشبوه
  • تدوير البصمات - مع IPs مختلفة، يمكنك استخدام بصمات مختلفة دون ربط
  • تجاوز تحديد المعدل - توزيع الطلبات عبر العديد من IPs يقلل من احتمال الحظر
  • محاكاة الأجهزة المحمولة - توفر البروكسيات المحمولة IPs حقيقية لمزودي الخدمة

ما هي البروكسيات التي يجب استخدامها لمهام مختلفة:

المهمة نوع البروكسي لماذا
جمع بيانات إعلانات Facebook بروكسيات موبايل تثق Facebook في IPs المحمولة من مزودي الخدمة، خطر الحظر منخفض
جمع البيانات من Wildberries/Ozon بروكسيات سكنية IPs حقيقية لمستخدمين منزليين، من الصعب تمييزها عن الشرعية
جمع بيانات API بشكل جماعي بروكسيات مركز البيانات سرعة عالية، سعر منخفض، مناسب لـ API بدون حماية صارمة
تعدد الحسابات على Instagram محمولة أو سكنية تحظر Instagram بشدة مراكز البيانات، تحتاج إلى IPs "نظيفة"
إعلانات TikTok بروكسيات موبايل يستهدف TikTok الأجهزة المحمولة، تبدو IPs المحمولة طبيعية

المعلمات المهمة للبروكسيات للعمل مع بصمة HTTP/2:

  • دعم HTTP/2 - تأكد من أن خادم البروكسي يدعم بروتوكول HTTP/2
  • جلسات ثابتة - إمكانية الاحتفاظ بنفس IP لفترة الجلسة (لتعدد الحسابات)
  • تدوير IP - تغيير تلقائي لـ IP لجمع البيانات (كل N طلبات أو حسب الوقت)
  • ارتباط جغرافي - يجب أن يتوافق اختيار البلد/المدينة مع البصمة
  • نظافة IP - تحقق من IP من وجوده في القوائم السوداء (يمكن عبر IPQualityScore)

توفر مجموعة من بصمة HTTP/2 الصحيحة وبروكسيات عالية الجودة تأثيرًا تآزريًا - كل عنصر يعزز الآخر. على سبيل المثال، عند جمع البيانات من Wildberries عبر curl-impersonate مع بروكسيات سكنية، تصل نسبة نجاح الطلبات إلى 97%، بينما بدون بروكسيات أو مع بروكسيات مركز البيانات - فقط 60-70%.

حالات عملية: جمع البيانات، التحكيم، التجارة الإلكترونية

دعونا نستعرض سيناريوهات حقيقية لتطبيق تجاوز بصمة HTTP/2 في مجالات الأعمال المختلفة.

الحالة 1: جمع أسعار Wildberries لمراقبة المنافسين

المهمة: شركة التجارة الإلكترونية تبيع الإلكترونيات على Wildberries وتريد تتبع أسعار 500 منافس تلقائيًا مرتين في اليوم.

المشكلة: يستخدم Wildberries إدارة الروبوتات من Cloudflare مع التحقق من بصمة HTTP/2. يتم حظر المكتبات القياسية (Python requests، Scrapy) بعد 3-5 طلبات.

الحل:

  1. استخدام curl-impersonate (curl_cffi لـ Python) مع محاكاة Chrome 120
  2. توصيل بروكسيات سكنية مع تدوير كل 10 طلبات
  3. إضافة تأخيرات عشوائية من 2-5 ثوانٍ بين الطلبات
  4. تدوير User-Agent بين Chrome 119 و 120 و 121 مع البصمات المناسبة
import time
import random
from curl_cffi import requests

# قائمة المنتجات لجمع البيانات
product_ids = [12345678, 87654321, ...]  # 500 منتج

# إعدادات البروكسي (سكنية مع تدوير)
proxy = "http://username:password@residential.proxycove.com:8080"

# إصدارات Chrome للتدوير
chrome_versions = ['chrome119', 'chrome120', 'chrome121']

results = []

for product_id in product_ids:
    # اختيار إصدار Chrome عشوائي
    impersonate = random.choice(chrome_versions)
    
    url = f'https://www.wildberries.ru/catalog/{product_id}/detail.aspx'
    
    try:
        response = requests.get(
            url,
            impersonate=impersonate,
            proxies={'http': proxy, 'https': proxy},
            headers={
                'Accept-Language': 'ru-RU,ru;q=0.9',
                'Accept': 'text/html,application/xhtml+xml'
            },
            timeout=15
        )
        
        if response.status_code == 200:
            # جمع السعر من HTML
            price = parse_price(response.text)
            results.append({'id': product_id, 'price': price})
            print(f'✓ {product_id}: {price} روبل.')
        else:
            print(f'✗ {product_id}: HTTP {response.status_code}')
    
    except Exception as e:
        print(f'✗ {product_id}: {str(e)}')
    
    # تأخير عشوائي
    time.sleep(random.uniform(2, 5))

# حفظ النتائج
save_to_database(results)

النتيجة: ارتفعت نسبة نجاح جمع البيانات من 45% (بدون تجاوز البصمة) إلى 96%. توفير الوقت - بدلاً من المراقبة اليدوية لمدة 8 ساعات في اليوم، يتم جمع البيانات تلقائيًا في 30 دقيقة.

الحالة 2: إنشاء حسابات إعلانات Facebook للتحكيم

المهمة: يقوم فريق التحكيم بتشغيل إعلانات على 30 حسابًا على Facebook Ads في نفس الوقت لاختبار الإبداعات.

المشكلة: تحدد Facebook الحسابات المرتبطة من خلال بصمة HTTP/2 وتحظر المجموعة بأكملها (chain-ban). عند استخدام متصفح واحد لجميع الحسابات، يكون خطر الحظر 90%.

الحل:

  1. استخدام Dolphin Anty مع إنشاء 30 ملف تعريف فريد
  2. لكل ملف تعريف - بصمة HTTP/2 فريدة، Canvas، WebGL، User-Agent
  3. توصيل بروكسيات موبايل (IP واحد لكل حساب، جلسة ثابتة لمدة 24 ساعة)
  4. تقسيم الحسابات حسب أنظمة التشغيل (10 Windows، 10 macOS، 10 محاكاة Android)
  5. تسخين الحسابات: 3 أيام من النشاط العادي (تصفح الخلاصة، الإعجابات) قبل بدء الإعلانات

الإعداد في Dolphin Anty:

  • الملف الشخصي 1: Windows 10، Chrome 120، بروكسي موبايل من روسيا (Beeline)، بصمة من جهاز حقيقي
  • الملف الشخصي 2: macOS Sonoma، Safari 17، بروكسي موبايل من روسيا (MTS)، بصمة فريدة
  • الملف الشخصي 3: Windows 11، Chrome 121، بروكسي موبايل من أوكرانيا (Kyivstar)، بصمة من جهاز حقيقي
  • وهكذا لبقية 30 ملف تعريف...

النتيجة: خلال 3 أشهر من العمل، تم حظر 2 حسابات من 30 (6.6% مقابل 90% بدون مكافحة الكشف). ارتفع ROI بنسبة 340% بفضل إمكانية اختبار المزيد من المجموعات في نفس الوقت.

الحالة 3: أتمتة النشر على Instagram لوكالة SMM

المهمة: تدير وكالة SMM 50 حسابًا لعملائها على Instagram وتريد أتمتة نشر المشاركات وفقًا لجدول زمني.

المشكلة: تقوم Instagram بحظر الحسابات عند اكتشاف الأتمتة. يؤدي استخدام نفس IP وبصمة متطابقة لجميع الحسابات إلى حظر جماعي.

الحل:

  1. استخدام AdsPower مع 50 ملف تعريف (واحد لكل حساب)
  2. بروكسيات سكنية مرتبطة بمدينة العميل (إذا كان العميل من موسكو - بروكسي من موسكو)
  3. بصمة HTTP/2 فريدة لكل ملف تعريف
  4. أتمتة عبر جدولة مدمجة في AdsPower (بدون كود)
  5. محاكاة الإجراءات اليدوية: تأخيرات عشوائية، تصفح الخلاصة قبل النشر

إعداد الأتمتة:

  • تحميل المحتوى في AdsPower (صور، نصوص، علامات تصنيف)
  • إعداد الجدول الزمني: نشر كل يوم في الساعة 12:00 بتوقيت العميل
  • إضافة عشوائية: ±30 دقيقة من الوقت المحدد
  • قبل النشر: فتح Instagram → التمرير خلال الخلاصة لمدة 2-3 دقائق
```