برنامه نویسی

⭐🤖🔑 9 نکته نینجا برای جلوگیری از شناسایی ربات مانند نینجا خاکستری 🕵️‍♂️🔍🛡️

معرفی

این را تصور کنید: شما یک اسکریپت سلنیوم برای خودکار کردن یک وب سایت می نویسید، فقط توسط سرویس های تشخیص مانند Cloudflare و PerimeterX مسدود می شود.

ربات Cloudflare دستگیر شد

در این مقاله، من 9 نکته درخشان را برای جلوگیری از شناسایی ربات های Cloudflare و PerimeterX به اشتراک می گذارم.

در این مقاله، فریم ورک Bose را نیز به شما معرفی می کنم، چارچوبی که با استفاده از مهارت های توسعه ربات خود برای کمک به توسعه دهندگان ربات در ایجاد ربات های غیرقابل توقف ایجاد کردم. به آن مانند چاقوی ارتش سوئیس برای توسعه ربات فکر کنید.

من تمام دانش خود را از توسعه ربات در یک چارچوب ساده برای استفاده همه توسعه دهندگان ربات متمرکز کرده ام.

اکنون، اجازه دهید نکاتی را برای جلوگیری از شناسایی ربات از Cloudflare و PerimeterX مانند یک نینجا واقعی بیاموزیم.

نکات

1. User-Agent و چرخش اندازه پنجره

سیستم‌های تشخیص ربات، عامل کاربر و اندازه پنجره را برای شناسایی ربات‌ها تجزیه و تحلیل می‌کنند.

به عنوان مثال، ایجاد تعداد غیرعادی درخواست (مثلاً 1000 بازدید از صفحه) با استفاده از یک عامل کاربر، شانس پرچم گذاری شدن به عنوان یک ربات را افزایش می دهد.

همچنین، استفاده از عوامل کاربری ساخته شده که در حال استفاده نیستند نیز شانس پرچم گذاری به عنوان ربات را افزایش می دهد.

بنابراین، بهتر است از عوامل کاربری رایج مانند کروم 104 و کروم 106 به صورت تصادفی استفاده کنید.

در Bose Framework، قطعه کد زیر نحوه دستیابی به چرخش تصادفی عوامل کاربر و اندازه پنجره ها را با هر اجرا نشان می دهد:

from bose import *

class Task(BaseTask):
    browser_config = BrowserConfig(user_agent=UserAgent.RANDOM, window_size=WindowSize.RANDOM)

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

علاوه بر این، اگر از Bose Framework به جای سلنیوم ساده استفاده می کنید، عامل کاربر به طور پیش فرض در هر اجرا به طور خودکار چرخانده می شود.

2. آی پی های خود را تغییر دهید

برای فرار از تشخیص، تغییر آدرس IP یکی دیگر از جنبه های مهم است. وب سایت ها اغلب آدرس های IP را برای شناسایی و مسدود کردن فعالیت های مشکوک ردیابی می کنند.

اگر توسط سرویس هایی مانند Cloudflare یا PerimeterX شناسایی شده اید، برای ادامه اتوماسیون باید آدرس IP خود را تغییر دهید.

برای تغییر آدرس IP شما هر دو روش رایگان و پولی وجود دارد:

روش های رایگان

حالت هواپیما را فعال و غیرفعال کنید

در این روش می توانید از اتصال بین رایانه شخصی خود و هات اسپات موبایل برای دسترسی به اینترنت از طریق سیم کارت استفاده کنید و سپس حالت هواپیما را در دستگاه تلفن همراه خود فعال و غیرفعال کنید تا یک آدرس IP جدید دریافت کنید.

این روش بسیار سریع است و معمولاً 10 ثانیه طول می کشد تا یک IP جدید بدست آید.

در اینجا نحوه فعال یا غیرفعال کردن حالت هواپیما برای تغییر آدرس IP آمده است:

  1. کامپیوتر خود را به یک هات اسپات موبایل وصل کنید.

  2. در دستگاه تلفن همراه خود، حالت هواپیما را روشن و خاموش کنید

  3. حالا هات اسپات را دوباره روشن کنید.

روشن و خاموش روتر WIFI

برای دستگاه‌هایی که به شبکه Wi-Fi متصل هستند، خاموش کردن روتر و سپس روشن کردن مجدد آن، آدرس IP را تغییر می‌دهد. اگرچه این روش کند است زیرا روتر Wifi برای شروع 2-3 دقیقه طول می کشد.

روش پرداخت

خدمات پولی مانند Oxylab و IPRoyal مجموعه ای از آدرس های IP مسکونی را ارائه می دهند. با این حال، آنها می توانند بسیار گران باشند، با قیمت متوسط ​​​​حدود 15 دلار در هر گیگابایت برای IP های مسکونی. اگر این روش را انتخاب می‌کنید و حجم زیادی از داده‌ها را جمع‌آوری می‌کنید، برای کاهش هزینه‌ها، بارگذاری CSS و تصاویر را غیرفعال کنید.


به طور کلی، روش رایگان استفاده از حالت هواپیما برای بیشتر موارد استفاده به خوبی جواب می دهد. این نه تنها رایگان است بلکه سریعتر از استفاده از پروکسی است

3. جریان صفحه انسانی

برای جلوگیری از سوء ظن، رفتار ارگانیک کاربر را با تعامل با وب سایت مانند یک انسان تکرار کنید. به طور کلی باید این توصیه ها را دنبال کنید.

دسترسی به صفحات از طریق موتورهای جستجو

به جای بازدید مستقیم از یک صفحه، از طریق موتور جستجویی مانند گوگل به آن بروید. این شبیه‌سازی می‌کند که چگونه کاربران معمولاً وب‌سایت‌ها را با جستجو در موتور جستجو کشف می‌کنند. Bose Framework روش خاصی به نام organic_get را در درایور سلنیوم ارائه می دهد که این رفتار را به دست می آورد. می توانید به صورت زیر از آن استفاده کنید:

driver.organic_get("https://example.com")
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

با استفاده از پیوندهای داخلی پیمایش کنید

مرورگرها می‌توانند صفحه‌ای را که از آن آمده‌اید، با بررسی آن تشخیص دهند document.referrer ویژگی. هنگام بازدید از چندین صفحه در یک سایت، از روش get_by_current_page_referrer از درایور Bose استفاده کنید. این روش مبتنی بر جاوا اسکریپت، ناوبری داخلی را با کلیک کردن روی یک پیوند شبیه‌سازی می‌کند و طبیعی‌تر به نظر می‌رسد:

driver.get_by_current_page_referrer("https://example.com")
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

4. از انتظارات تصادفی و آهسته کردن ربات استفاده کنید

افزودن زمان انتظار تصادفی و کند کردن ربات بین اقدامات به تقلید از الگوهای تعامل انسانی و فرار از تشخیص ربات کمک می کند.

Bose Framework ارائه می دهد short_random_sleep() و long_random_sleep() روش هایی که ربات را برای مدتی تصادفی متوقف می کند.

در اینجا نحوه استفاده از آنها آورده شده است:

driver.short_random_sleep()
driver.long_random_sleep()
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

5. از خدمات حل کپچا استفاده کنید

سرویس‌هایی مانند Cloudflare ممکن است چالش‌های CAPTCHA را ایجاد کنند. برای غلبه بر این مانع، می توانید از خدمات حل CAPTCHA مانند 2 کپچا، که چالش های CAPTCHA را حل می کند.

6. از ChromeDriver Ultrafunkamsterdam استفاده کنید

ChromeDriver Ultrafunkamsterdam که توسط Leon از هلند توسعه یافته است، یک ابزار استثنایی است که مخفی بودن Selenium Driver را افزایش می دهد. وصله هایی را اعمال می کند که تشخیص ربات را برای سرویس های تشخیص مانند Cloudflare و PerimeterX دشوارتر می کند.

Bose Framework به طور یکپارچه با ChromeDriver Ultrafunkamsterdam یکپارچه می شود. برای استفاده از آن مشخص کنید use_undetected_driver=True در browser_config:

class Task(BaseTask):
    browser_config = BrowserConfig(use_undetected_driver=True)
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

7. از مرورگر Headless استفاده نکنید

از استفاده از مرورگرهای بدون هد خودداری کنید، زیرا سیستم‌های تشخیص ربات مانند PerimeterX می‌توانند با بررسی APIهای خاص، آنها را شناسایی کنند.

به عنوان مثال، کد زیر در جاوا اسکریپت مشخص می کند که آیا مرورگر بدون هد است یا خیر. در مورد کروم بدون هد، آزمایش «کروم بدون سر» را ثبت می‌کند

navigator.permissions
  .query({ name: "notifications" })
  .then(function (permissionStatus) {
    if (
      Notification.permission === "denied" &&
      permissionStatus.state === "prompt"
    ) {
      console.log("Headless Chrome")
    } else {
      console.log("Not Headless Chrome")
    }
  })
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

8. یکنواختی را در عامل کاربر، اندازه پنجره و آدرس IP حفظ کنید

اگر جلسات را با استفاده از نمایه ای در سلنیوم حفظ می کنید، مطمئن شوید که عامل کاربر و اندازه پنجره برای نمایه ثابت باقی می مانند.

تغییرات ناگهانی و مکرر در این پارامترها مانند یک بار استفاده از Chrome 106 و سپس Chrome 98 و سپس Chrome 102 می‌تواند پرچم‌های قرمز را افزایش دهد و منجر به شناسایی شود.

در Bose Framework، اگر نمایه ای را در یک کار مشخص کنید، به طور خودکار همان عامل کاربر و اندازه پنجره را در هر اجرا با استفاده از آن نمایه حفظ می کند. در اینجا مثالی از نحوه تعیین نمایه در Boss Task آورده شده است:

class Task(BaseTask):
    # The User Agent and Window Size will remain same on each run with profile 1.
    browser_config = BrowserConfig(profile=1)
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

همچنین، هنگام استفاده از پروکسی، حفظ ثبات در مکان آدرس IP به همان اندازه مهم است. از تغییرات ناگهانی از یک کشور به کشور دیگر، مانند تغییر از بهارات (هند) به روسیه و سپس به اسرائیل اجتناب کنید.

9. از Bose Framework استفاده کنید

هر زمان که در حال توسعه اسکریپت سلنیوم هستید، قطعا باید از Bose Framework استفاده کنید.

درست مانند یک Thunder Stone که Pikachu را به Raichu در دنیای پوکمون تبدیل می کند، Bose Framework یک توسعه دهنده معمولی بات را به یک توسعه دهنده ربات بزرگ تبدیل می کند.

برای ایجاد ربات های قدرتمند، آموزش چارچوب Bose را در https://www.omkar.cloud/bose/docs/tutorial/ بخوانید.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا