Undetected ChromeDriver نسخهای اصلاحشده از ChromeDriver سلنیوم است که هدفش این است که سرویسهای رایج تشخیص ربات، آن را اتوماسیون به شمار نیاورند.
این ابزار چیست؟
Undetected ChromeDriver کتابخانهای در Python است که یک ChromeDriver وصلهخورده ارائه میدهد. تغییرها روی همان نشانههایی متمرکزند که سرویسهایی مانند Imperva و DataDome و Distil Networks و تا حدی Cloudflare با آنها یک نشست Selenium را میشناسند.
چطور کار میکند؟
- تغییر نام متغیرهای Selenium: شناسههایی که Selenium در مرورگر جا میگذارد نامهایی میگیرند که در یک مرورگر معمولی دیده میشود.
- User-Agent واقعنما: بهجای شناسهای که اتوماسیون بودن را بیدرنگ لو میدهد.
- رفتار طبیعیتر: الگوهای حرکت و زمانبندی که کمتر ماشینی به نظر میرسند.
- کوکی و نشست: در طول بازدید درست نگهداری میشوند.
- پشتیبانی از پروکسی: تا همه درخواستها از یک آدرس بیرون نروند.
کدام محصولات پروکسی ما برای این کار مناسباند:
نصب
pip install undetected-chromedriverنخستین اسکریپت:
import undetected_chromedriver as uc
# start the browser
driver = uc.Chrome()
# open the target page
driver.get("https://example.com")
# ... read the data you need ...
driver.quit()با uc.ChromeOptions() مرورگر را تنظیم میکنید، مثلاً برای اجرا بدون پنجره:
import undetected_chromedriver as uc
options = uc.ChromeOptions()
options.add_argument("--headless=new")
driver = uc.Chrome(options=options)وصل کردن پروکسی
import undetected_chromedriver as uc
options = uc.ChromeOptions()
options.add_argument("--proxy-server=http://PROXY_HOST:PORT")
driver = uc.Chrome(options=options)کجا کم میآورد؟
این کتابخانه از بسیاری از روشهای تشخیص میگذرد، اما نه از همه، و خودش چرخش پروکسی ندارد.
- بررسیهای ساده: نرخ موفقیت بالا؛ نشست تقریباً مثل یک بازدید دستی رفتار میکند.
- بررسیهای متوسط: سرویسهایی مانند Cloudflare وارد کار میشوند و باید تنظیم اثر انگشت و نگهداری درست کوکی را هم به آن افزود.
- بررسیهای سختگیرانه: تحلیل رفتار در مرورگر معمولاً اتوماسیون را با این حال تشخیص میدهد. اینجا سراغ ابزارهای دیگر یا یک رابط رسمی رفتن بهتر است.
راهاندازی کمی بیشتر از ChromeDriver معمولی طول میکشد؛ این بهای همان وصلههاست و در اجراهای طولانی به چشم نمیآید.
شیوههای درست
آدرس را عوض کنید. درخواستهای فراوان از یک IP آشکارترین نشانه ممکن است. یک پروکسی مسکونی چرخشی این کار را در سمت سرویس انجام میدهد؛ با فهرست شخصی خودتان، چرخش را بر اساس چرخاندن پروکسی در Python بسازید.
اثر انگشت را هماهنگ کنید. آنچه مرورگر درباره فونتها و وضوح صفحه و گرافیک فاش میکند، خودش یک نشانه است. کتابخانههایی مانند selenium-stealth آن را هموار میکنند.
کوکیها را نگه دارید. نشستی که در هر بازدید از صفر شروع میشود، ماشین به نظر میرسد. کوکیها را ذخیره و در اجرای بعدی بارگذاری کنید.
حالت بدون پنجره را با احتیاط به کار ببرید. اجرا بدون پنجره راحت است، اما برخی سایتها خودِ آن را نشانه میگیرند. اگر به مشکل خوردید، خاموشش کنید و ببینید.
بیش از حد منظم کار نکنید. مکثهای تصادفی میان درخواستها و مسیری که هر بار یکسان نباشد، کمتر از یک اجرای دقیقاً زمانبندیشده جلب توجه میکند.
جمعبندی
Undetected ChromeDriver ابزار کارآمدی است، اما هر موردی را حل نمیکند. نرخ تشخیص وقتی واقعاً پایین میآید که در کنار آن آدرس متغیر و اثر انگشت تنظیمشده و ریتم آرام هم داشته باشید.
برای مقصدهای سختگیرتر، نگاهی به Playwright یا Puppeteer بیندازید، یا اگر API رسمی هست از آن استفاده کنید. و فارغ از ابزار: شرایط استفاده سایت مقصد و قوانین جاری را رعایت کنید.




