تجاوز فحص مكافحة البوت باستخدام سكرابلينج في أوبن كلاو

Ashley Innocent

Ashley Innocent

5 مارس 2026

تجاوز فحص مكافحة البوت باستخدام سكرابلينج في أوبن كلاو

Apidog للمؤسسات

نشر محلي

SSO & RBAC

متوافق مع SOC 2

استكشاف Apidog Enterprise

TL;DR

توفر Scrapling إمكانات قوية لتجاوز أنظمة مكافحة الروبوتات من خلال وضعَي StealthyFetcher و DynamicFetcher. استخدم StealthyFetcher للمواقع المحمية بواسطة Cloudflare (حل Turnstile تلقائيًا، عشوائية بصمة Canvas، حظر WebRTC) أو DynamicFetcher لتطبيقات مكافحة الروبوتات التي تعتمد على JavaScript بشكل كبير. ادمجها مع OpenClaw للتحكم في جميع عمليات الكشط من خلال الأوامر باللغة الطبيعية.

مقدمة

تزور موقعًا إلكترونيًا لجمع البيانات. تُحمّل الصفحة. ثم تراها: "تم رفض الوصول" أو تحدي CAPTCHA. لقد اكتشف الموقع أداة الكشط الخاصة بك وقام بحظر الوصول. يتكرر هذا السيناريو باستمرار للمطورين وعلماء البيانات والباحثين الذين يحتاجون إلى بيانات الويب لمشاريع مشروعة.

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

نمى مجال اكتشاف الروبوتات ليصبح سوقًا بمليارات الدولارات. تستثمر الشركات بكثافة في حماية أصولها الرقمية من الوصول الآلي. تُفيد Cloudflare وحدها بحظر مليارات طلبات الروبوتات يوميًا. هذا يخلق تحديات كبيرة لجمع البيانات المشروعة، سواء لأبحاث السوق أو التحليل التنافسي أو مراقبة الأسعار أو البحث الأكاديمي.

Scrapling يحل هذه المشكلة. تتضمن المكتبة أوضاعًا متعددة لمكافحة الكشف مصممة خصيصًا لتجاوز هذه الحمايات. بالاشتراك مع واجهة OpenClaw للغة الطبيعية، يمكنك توجيه مساعد الذكاء الاصطناعي الخاص بك لتجاوز فحوصات مكافحة الروبوتات دون كتابة تعليمات برمجية معقدة.

💡
بالنسبة لسير عمل تطوير واختبار واجهات برمجة التطبيقات (API)، يوفر Apidog أدوات شاملة تكمل إمكانات كشط الويب، مما يتيح لك اختبار والتحقق من صحة البيانات التي تجمعها من المواقع المحمية.

زر

فهم اكتشاف مكافحة الروبوتات

قبل تجاوز الاكتشاف، تحتاج إلى فهم كيفية عمله. تقوم أنظمة مكافحة الروبوتات بتحليل عدة عوامل:

بصمة المتصفح: تجمع المواقع معلومات حول متصفحك، بما في ذلك دقة الشاشة والخطوط المثبتة ومُحسّن WebGL ومخرج Canvas ومئات الإشارات الأخرى. غالبًا ما تكشف الأدوات الآلية عن نفسها من خلال بصمات متسقة تختلف عن المتصفحات الحقيقية.

التحليل السلوكي: يتحرك المستخدمون البشريون بالفأرة بشكل غير متوقع، ويتصفحون بسرعات متفاوتة، ويكتبون بتوقيت طبيعي. غالبًا ما تظهر الروبوتات أنماطًا ميكانيكية: تحميل الصفحات الفوري، سرعات التصفح الموحدة، التوقيت المثالي بين الإجراءات.

تحليل الطلبات: يتضمن كل طلب HTTP رؤوسًا وبصمات TLS وأنماط الاتصال. تقوم مكتبات HTTP القياسية مثل `requests` بإنشاء طلبات تبدو آلية بوضوح مقارنة بحركة مرور المتصفح الحقيقية.

تحديات JavaScript: تقوم المواقع الحديثة بتنفيذ JavaScript لجمع معلومات المتصفح. على سبيل المثال، يقوم Cloudflare Turnstile بتشغيل اختبارات غير مرئية للتحقق من سلامة المتصفح قبل عرض المحتوى.

سمعة IP: يتم وضع علامة على عناوين IP بناءً على مزود الاستضافة، وتاريخ النشاط المشبوه، والموقع الجغرافي. تؤدي عناوين IP لمراكز البيانات إلى الاشتباه الفوري.

يعالج Scrapling كل من هذه المتجهات للكشف من خلال أدوات الجلب المتخصصة.

إمكانيات Scrapling لمكافحة الروبوتات

توفر Scrapling أداتين رئيسيتين للFetchers لتجاوز أنظمة مكافحة الروبوتات:

يتعامل StealthyFetcher مع معظم حمايات Cloudflare والحمايات المماثلة. يستخدم متصفح Chrome بدون واجهة رسومية (headless Chrome) مع تقنيات تهرب مدمجة تقوم بتصحيح متجهات الكشف الشائعة تلقائيًا.

يوفر DynamicFetcher أتمتة كاملة للمتصفح من خلال Playwright. استخدمه عندما يفشل StealthyFetcher أو عندما يستخدم الموقع اكتشافًا متقدمًا يعتمد على JavaScript.

إليك كيفية الاختيار:

السيناريو الـ Fetcher الموصى به
حماية Cloudflare StealthyFetcher
Turnstile CAPTCHA StealthyFetcher
اكتشاف الروبوتات الأساسي StealthyFetcher
تحديات JavaScript المعقدة DynamicFetcher
التمرير اللانهائي (Infinite scroll) مع مكافحة الروبوتات DynamicFetcher
حلول مخصصة لمكافحة الروبوتات DynamicFetcher

StealthyFetcher: نظرة متعمقة

StealthyFetcher هو الأداة الأساسية في Scrapling لتجاوز أنظمة مكافحة الروبوتات. يتعامل مع معظم آليات الحماية الشائعة تلقائيًا.

الاستخدام الأساسي

from scrapling.fetchers import StealthyFetcher

fetcher = StealthyFetcher()
page = fetcher.get('https://protected-site.com')
print(page.text)

يحاول أداة الجلب تلقائيًا تجاوز حماية Cloudflare و PerimeterX والحماية المماثلة.

تجاوز Cloudflare Turnstile

Cloudflare Turnstile هو أحد أكثر تحديات مكافحة الروبوتات شيوعًا. يقوم StealthyFetcher بحلها تلقائيًا:

page = StealthyFetcher.fetch(
    'https://cloudflare-protected-site.com',
    solve_cloudflare=True
)

المعلمة solve_cloudflare=True تقوم بتشغيل حل التحدي تلقائيًا. يعمل هذا لكل من التحديات البينية (صفحة "التحقق من متصفحك قبل الوصول") وأدوات Turnstile.

عشوائية بصمة Canvas

تُنشئ بصمة Canvas معرفات فريدة بناءً على كيفية عرض متصفحك للرسومات. يضيف StealthyFetcher ضوضاء عشوائية لعمليات Canvas:

page = StealthyFetcher.fetch(
    'https://site.com',
    hide_canvas=True
)

يولد كل طلب مخرج Canvas مختلفًا، مما يجعل تتبع البصمة غير فعال.

منع تسرب WebRTC

يمكن لـ WebRTC كشف عنوان IP الحقيقي الخاص بك حتى عند استخدام البروكسيات. يمنع StealthyFetcher طلبات WebRTC:

page = StealthyFetcher.fetch(
    'https://site.com',
    block_webrtc=True
)

يمنع هذا تسربات IP المحلية التي قد تكشف هويتك أو موقعك.

تزييف مرجع بحث Google

تسمح العديد من المواقع بالوصول عندما تعتقد أن حركة المرور تأتي من بحث Google. يقوم StealthyFetcher بتزييف هذا المرجع:

page = StealthyFetcher.fetch(
    'https://site.com',
    google_search=True
)

يجعل هذا الطلب يبدو وكأنه يأتي من صفحة نتائج بحث Google.

استخدام متصفح Chrome المثبت

لتحقيق أقصى قدر من التهرب، استخدم متصفح Chrome المثبت لديك بدلاً من Chromium الخاص بـ Playwright:

page = StealthyFetcher.fetch(
    'https://site.com',
    real_chrome=True
)

يستخدم هذا تثبيت Chrome الفعلي الخاص بك، والذي يحتوي على بصمة متصفح مشروعة.

تزييف الموقع الجغرافي

طابق طلبك بموقع محدد:

page = StealthyFetcher.fetch(
    'https://site.com',
    locale='en-US',
    timezone_id='America/New_York'
)

يضبط هذا إعدادات المنطقة الزمنية واللغة للمتصفح لتتوافق مع موقعك المطلوب.

DynamicFetcher للحماية المتقدمة

تستخدم بعض المواقع أنظمة متطورة لمكافحة الروبوتات لا يمكن لـ StealthyFetcher تجاوزها. يوفر DynamicFetcher أتمتة كاملة للمتصفح باستخدام Playwright:

from scrapling.fetchers import DynamicFetcher

fetcher = DynamicFetcher()
page = fetcher.get('https://highly-protected-site.com')
print(page.text)

التعامل مع التمرير اللانهائي (Infinite Scroll)

المواقع التي تحتوي على تمرير لا نهائي وحماية ضد الروبوتات تتطلب أتمتة المتصفح:

from scrapling.fetchers import DynamicFetcher
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    fetcher = DynamicFetcher(playwright=p)
    page = fetcher.get('https://site.com/infinite-scroll')

    # انتظر تحميل المحتوى
    page.wait_for_selector('.content-item')

    # مرّر لتحميل المزيد
    for _ in range(5):
        page.evaluate('window.scrollTo(0, document.body.scrollHeight)')
        page.wait_for_timeout(1000)

انتظار تنفيذ JavaScript

يتم تحميل بعض المحتوى من خلال JavaScript بعد التحميل الأولي للصفحة:

page = DynamicFetcher.get('https://site.com')
page.wait_for_load_state('networkidle')
content = page.content()

يضمن هذا تنفيذ جميع JavaScript قبل استخراج المحتوى.

التعامل مع CAPTCHA يدويًا

بالنسبة لتحديات CAPTCHA التي لا يمكن حلها تلقائيًا:

page = DynamicFetcher.get('https://site.com')

# تحقق مما إذا كان CAPTCHA موجودًا
if page.is_visible('.captcha-container'):
    # التقط لقطة شاشة للحل اليدوي
    page.screenshot(path='captcha.png')
    # بعد الحل اليدوي، تابع
    page.click('.captcha-submit')

يمكنك التوقف للتدخل اليدوي، وحل CAPTCHA بنفسك، ثم استئناف الكشط.

الاستخدام مع OpenClaw

يتيح لك OpenClaw التحكم في إمكانيات Scrapling لمكافحة الروبوتات من خلال اللغة الطبيعية (إذا كنت ترغب في معرفة كيفية إعداد Scrapling داخل OpenClaw، راجع هذا المنشور):

تجاوز Cloudflare على موقع:

"احصل على بيانات المنتج من https://shop.example.com، هذا الموقع لديه حماية Cloudflare"

يستخدم OpenClaw تلقائيًا StealthyFetcher مع تمكين solve_cloudflare.

التعامل مع موقع بحماية متقدمة:

"اكشط قوائم الوظائف من https://careers.example.com، استخدم وضع المتصفح بدون واجهة رسومية لأن لديهم حماية قوية لمكافحة الروبوتات"

ينتقل OpenClaw إلى DynamicFetcher لأتمتة المتصفح بالكامل.

استخدام تناوب الوكلاء (proxy rotation):

"استخرج البيانات من هذه الـ 100 عنوان URL، وقم بالتناوب بين هذه الوكلاء: proxy1.com:8080، proxy2.com:8080، proxy3.com:8080"

يوزع OpenClaw الطلبات عبر عدة وكلاء.

تزييف الموقع الجغرافي:

"احصل على بيانات الأسعار من https://site.com، استخدم إعدادات الساحل الشرقي للولايات المتحدة"

يقوم OpenClaw بتهيئة المنطقة الزمنية واللغة لتتوافق.

شرح تقنيات مكافحة الروبوتات

يساعدك فهم التقنيات الأساسية في اختيار النهج الصحيح:

تزييف بصمة TLS

عندما يتصل متصفحك بموقع ويب، فإنه يقوم بإجراء مصافحة TLS. تتضمن رسالة ClientHello خصائص تحدد مكتبة العميل الخاصة بك. تحتوي طلبات Python القياسية على بصمات مميزة تتعرف عليها أنظمة مكافحة الروبوتات.

تقوم Scrapling بتزييف بصمات TLS لتظهر كمتصفحات مشروعة. يحدث هذا تلقائيًا مع StealthyFetcher و DynamicFetcher.

تناوب عامل المستخدم (User-Agent Rotation)

يؤدي إرسال الطلبات بنفس سلسلة عامل المستخدم إلى تشغيل الاكتشاف. تقوم Scrapling بتناوب عوامل المستخدم تلقائيًا:

# يتم تناوب عامل المستخدم تلقائيًا
page = StealthyFetcher.get('https://site.com')

يظهر كل طلب وكأنه يأتي من إصدار متصفح مختلف.

تزييف الرؤوس (Header Spoofing)

ترسل المتصفحات الحقيقية رؤوسًا محددة بترتيبات معينة. تضمن Scrapling تطابق الرؤوس مع سلوك المتصفح المشروع تلقائيًا.

عشوائية Canvas

عندما يطلب موقع ويب من متصفحك رسم شيء ما، تكشف البكسلات الدقيقة عن متصفحك ووحدة معالجة الرسوميات (GPU) الخاصة بك. تضيف Scrapling ضوضاء غير محسوسة إلى عمليات Canvas، مما يجعل كل بصمة فريدة.

دقة الشاشة وحجم النافذة

غالبًا ما تُبلغ المتصفحات بدون واجهة رسومية عن أحجام شاشات افتراضية. تقوم Scrapling بعشوائية أبعاد منطقة العرض (viewport) لتتناسب مع شاشات المستخدمين الحقيقيين.

محاكاة حركة الفأرة

يمكن لـ DynamicFetcher محاكاة حركات الفأرة الشبيهة بالإنسان:

page.mouse.move_to_element('.button')
page.mouse.move_by_offset(50, 20)
page.click('.submit')

يضيف هذا أنماط حركة واقعية تجتاز التحليل السلوكي.

دمج البروكسي

يساعد استخدام البروكسيات على تجنب الحظر القائم على IP ويمكّن الكشط الجغرافي:

الاستخدام الأساسي للبروكسي

from scrapling.fetchers import StealthyFetcher

fetcher = StealthyFetcher()
page = fetcher.get(
    'https://site.com',
    proxy='http://username:password@proxy.example.com:8080'
)

تناوب البروكسي

للكشط على نطاق واسع، تناوب عبر بروكسيات متعددة:

import random
from scrapling.fetchers import StealthyFetcher

proxies = [
    'http://proxy1.com:8080',
    'http://proxy2.com:8080',
    'http://proxy3.com:8080'
]

fetcher = StealthyFetcher()

for url in urls:
    proxy = random.choice(proxies)
    page = fetcher.get(url, proxy=proxy)
    # معالجة الصفحة

البروكسيات السكنية

تستخدم البروكسيات السكنية عناوين IP من مزودي خدمة الإنترنت الحقيقيين. يصعب اكتشافها أكثر من عناوين IP لمراكز البيانات:

page = StealthyFetcher.get(
    'https://site.com',
    proxy='http://residential-proxy-provider:port'
)

تكلف البروكسيات السكنية أكثر ولكنها توفر معدلات نجاح أعلى بكثير على المواقع المحمية.

سيناريوهات مكافحة الروبوتات الشائعة

حماية Cloudflare

Cloudflare هو الحل الأكثر شيوعًا لمكافحة الروبوتات. تعمل معظم المواقع مع StealthyFetcher الأساسي:

page = StealthyFetcher.fetch('https://cloudflare-site.com', solve_cloudflare=True)

إذا عرض Cloudflare صفحة تحدي، يقوم الجالب بحلها تلقائيًا وإعادة المحاولة.

PerimeterX (الآن Ownl)

يستخدم PerimeterX (الآن جزء من Ownl) التحليل السلوكي:

# استخدم DynamicFetcher لـ PerimeterX
page = DynamicFetcher.get('https://perimeterx-site.com')

تتعامل أتمتة المتصفح الكاملة مع التحديات السلوكية بشكل أفضل.

أكامي (Akamai)

تقدم أكامي إدارة روبوتات على مستوى المؤسسات:

# غالبًا ما تتطلب أكامي بروكسيات سكنية
page = StealthyFetcher.get(
    'https://akamai-protected.com',
    proxy='http://residential-proxy:port',
    solve_cloudflare=True
)

غالبًا ما تتطلب المواقع المحمية بواسطة أكامي الجمع بين تقنيات تهرب متعددة.

حلول مكافحة الروبوتات المخصصة

تبني بعض المواقع أنظمة اكتشاف خاصة بها:

# استخدم أقصى إعدادات التخفي
page = StealthyFetcher.fetch(
    'https://custom-protected.com',
    solve_cloudflare=True,
    block_webrtc=True,
    hide_canvas=True,
    google_search=True,
    real_chrome=True
)

إذا فشل هذا، انتقل إلى DynamicFetcher مع أتمتة المتصفح الكاملة.

أفضل الممارسات

ابدأ ببساطة

ابدأ بـ StealthyFetcher الأساسي. أضف التعقيد فقط إذا واجهت حظرًا:

# جرب الأساسي أولاً
page = StealthyFetcher.get('https://site.com')

# أضف التهرب إذا لزم الأمر
if 'blocked' in page.text.lower():
    page = StealthyFetcher.fetch('https://site.com', solve_cloudflare=True)

احترم حدود المعدل

حتى مع إمكانيات مكافحة الروبوتات، فإن إرسال عدد كبير جدًا من الطلبات يؤدي إلى تشغيل الحماية:

import time

for url in urls:
    page = StealthyFetcher.get(url)
    time.sleep(2)  # انتظر بين الطلبات

استخدم البروكسيات السكنية للإنتاج

غالبًا ما تكون سمعة البروكسيات المجانية أو الرخيصة سيئة. استثمر في بروكسيات سكنية عالية الجودة لضمان كشط موثوق:

# بروكسي سكني عالي الجودة
page = StealthyFetcher.get(
    'https://site.com',
    proxy='http://premium-residential-proxy:port'
)

تحقق من robots.txt

تحقق دائمًا مما إذا كان الموقع يسمح بالكشط:

# تحقق من robots.txt قبل الكشط
from urllib.parse import urlparse

domain = urlparse('https://site.com').netloc
robots_url = f'https://{domain}/robots.txt'

التعامل مع الأخطاء بأمان

قم ببناء معالجة الأخطاء في أداة الكشط الخاصة بك:

from scrapling.fetchers import StealthyFetcher

fetcher = StealthyFetcher()

try:
    page = fetcher.get('https://site.com')
except Exception as e:
    print(f'خطأ: {e}')
    # الرجوع إلى DynamicFetcher
    from scrapling.fetchers import DynamicFetcher
    fetcher = DynamicFetcher()
    page = fetcher.get('https://site.com')

استكشاف الأخطاء وإصلاحها

لا يزال يتم حظري

إذا واجهت حظرًا على الرغم من استخدام StealthyFetcher:

  1. تفعيل جميع خيارات التهرب:
page = StealthyFetcher.fetch(
    'https://site.com',
    solve_cloudflare=True,
    block_webrtc=True,
    hide_canvas=True,
    google_search=True,
    real_chrome=True
)
  1. التبديل إلى DynamicFetcher:
from scrapling.fetchers import DynamicFetcher
page = DynamicFetcher.get('https://site.com')
  1. إضافة تناوب الوكلاء (proxy rotation):
page = StealthyFetcher.get(
    'https://site.com',
    proxy='http://residential-proxy:port'
)

حلقة تحدي Cloudflare

أحيانًا يعلق StealthyFetcher في حلقة تحدي:

  1. زيادة المهلة الزمنية (timeout):
page = StealthyFetcher.fetch(
    'https://site.com',
    solve_cloudflare=True,
    timeout=120
)
  1. استخدام real_chrome:
page = StealthyFetcher.fetch(
    'https://site.com',
    solve_cloudflare=True,
    real_chrome=True
)

عدم حل تحديات CAPTCHA

تتطلب بعض تحديات CAPTCHA تدخلًا يدويًا:

page = DynamicFetcher.get('https://site.com')

if page.is_visible('[class*="captcha"]'):
    page.screenshot(path='manual_captcha.png')
    # قم بالحل يدويًا، ثم تابع
    input('اضغط Enter بعد حل CAPTCHA...')
    page.click('.submit-button')

أداء بطيء

يضيف التهرب من أنظمة مكافحة الروبوتات عبئًا إضافيًا. للحصول على كشط أسرع:

  1. استخدم StealthyFetcher بدلاً من DynamicFetcher عندما يكون ذلك ممكنًا.
  2. أضف تجميع الاتصالات (connection pooling).
  3. استخدم وكلاء (proxies) أسرع.
  4. قلل خيارات التهرب غير الضرورية.

الخلاصة

يتطلب تجاوز فحوصات مكافحة الروبوتات فهم كيفية عمل الاكتشاف واستخدام الأدوات المناسبة لكل موقف. توفر Scrapling حلولًا شاملة من خلال StealthyFetcher لمعظم أنظمة الحماية و DynamicFetcher للسيناريوهات المتقدمة.

أهم النقاط المستفادة:

مع دمج OpenClaw، يمكنك التحكم في كل هذه الإمكانيات من خلال اللغة الطبيعية. أخبر مساعدك الذكي بما تحتاجه، وسيقوم باختيار النهج المناسب لمكافحة الروبوتات تلقائيًا. بمجرد جمع بياناتك، يمكنك استخدام Apidog لاختبار واجهات برمجة التطبيقات والتحقق من صحتها، وإنشاء مجموعات اختبار آلية، وتوليد وثائق لنقاط النهاية التي تكتشفها.

زر

الأسئلة الشائعة

ما الفرق بين StealthyFetcher و DynamicFetcher؟

يستخدم StealthyFetcher متصفح Chrome بدون واجهة رسومية معدّلًا مع تصحيحات تهرب مدمجة. يستخدم DynamicFetcher أتمتة Playwright الكاملة. StealthyFetcher أسرع ولكنه قد يفشل في مواجهة الكشف المتقدم. DynamicFetcher أكثر موثوقية ولكنه أبطأ.

هل تعمل Scrapling ضد جميع أنظمة مكافحة الروبوتات؟

لا يوجد حل لمكافحة الروبوتات يعمل بنسبة 100% من الوقت. تتعامل Scrapling مع معظم الأنظمة الشائعة (Cloudflare، PerimeterX، Akamai) بشكل موثوق. قد تتطلب الحلول المخصصة أو حلول المؤسسات تقنيات إضافية أو تدخلًا يدويًا.

هل تجاوز أنظمة مكافحة الروبوتات قانوني؟

تختلف القوانين حسب الولاية القضائية وتعتمد على شروط خدمة الموقع. بشكل عام، كشط البيانات العامة مقبول. تجاوز المصادقة أو الوصول إلى البيانات الخاصة دون ترخيص يتجاوز الحدود القانونية.

لماذا لا يزال الكشط الخاص بي محظورًا؟

تحقق من هذه المشكلات الشائعة: سمعة IP (استخدم البروكسيات السكنية)، حدود المعدل (أضف تأخيرات)، تهرب غير كافٍ (قم بتمكين المزيد من الخيارات)، أو تحديات JavaScript (استخدم DynamicFetcher).

كيف أتعامل مع تحديات CAPTCHA؟

يحل StealthyFetcher تحدي Cloudflare Turnstile تلقائيًا. لتحديات CAPTCHA الأخرى، استخدم DynamicFetcher وتوقف للحل اليدوي، أو ادمج خدمات حل CAPTCHA الخارجية.

هل يمكنني استخدام متصفح Chrome الخاص بي؟

نعم. قم بتعيين real_chrome=True في StealthyFetcher لاستخدام تثبيت Chrome الخاص بك بدلاً من Chromium الخاص بـ Playwright. يوفر هذا بصمة متصفح أكثر شرعية.

هل أحتاج إلى بروكسيات؟

للكشط على نطاق صغير، لا. لعمليات الإنتاج أو على نطاق واسع، تعمل البروكسيات السكنية على تحسين معدلات النجاح بشكل كبير عن طريق تجنب الحظر القائم على IP.

كيف أقوم بتدوير عوامل المستخدم (User-Agents)؟

يقوم StealthyFetcher بتدوير عوامل المستخدم تلقائيًا. للتحكم اليدوي:

fetcher = StealthyFetcher(headers={'User-Agent': 'Your-Custom-UA'})

ما هو معدل النجاح ضد Cloudflare؟

مع التكوين الصحيح، يتجاوز معدل النجاح 90% لمعظم المواقع المحمية بواسطة Cloudflare. يتم حل تحديات Turnstile تلقائيًا.

هل يمكنني الكشط من مواقع جغرافية متعددة؟

نعم. استخدم معلمتي timezone_id و locale:

page = StealthyFetcher.fetch(
    'https://site.com',
    timezone_id='Europe/London',
    locale='en-GB'
)

ممارسة تصميم API في Apidog

اكتشف طريقة أسهل لبناء واستخدام واجهات برمجة التطبيقات